annotate variant_effect_predictor/Bio/Structure/SecStr/DSSP/Res.pm @ 0:1f6dce3d34e0

Uploaded
author mahtabm
date Thu, 11 Apr 2013 02:01:53 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1 # $id $
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
2 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
3 # bioperl module for Bio::Structure::SecStr::DSSP::Res.pm
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
4 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
5 # Cared for by Ed Green <ed@compbio.berkeley.edu>
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
6 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
7 # Copyright Univ. of California
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
8 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
9 # You may distribute this module under the same terms as perl itself
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
10 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
11 # POD documentation - main docs before the code
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
12
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
13 =head1 NAME
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
14
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
15 Bio::Structure::SecStr::DSSP::Res - Module for parsing/accessing dssp output
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
16
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
17 =head1 SYNOPSIS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
18
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
19 my $dssp_obj = new Bio::Structure::SecStr::DSSP::Res( '-file' => 'filename.dssp' );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
20
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
21 # or
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
22
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
23 my $dssp-obj = new Bio::Structure::SecStr::DSSP::Res( '-fh' => \*STDOUT );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25 # get DSSP defined Secondary Structure for residue 20
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26 $sec_str = $dssp_obj->resSecStr( 20 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28 # get dssp defined sec. structure summary for PDB residue # 10 of chain A
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30 $sec_str = $dssp_obj->resSecStrSum( '10:A' );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32 =head1 DESCRIPTION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34 DSSP::Res is a module for objectifying DSSP output. Methods are then
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35 available for extracting all the information within the output file
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36 and convenient subsets of it.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37 The principal purpose of DSSP is to determine secondary structural
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38 elements of a given structure.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40 ( Dictionary of protein secondary structure: pattern recognition
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41 of hydrogen-bonded and geometrical features.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42 Biopolymers. 1983 Dec;22(12):2577-637. )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44 The DSSP program is available from:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45 http://www.cmbi.kun.nl/swift/dssp
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47 This information is available on a per residue basis ( see resSecStr
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48 and resSecStrSum methods ) or on a per chain basis ( see secBounds
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49 method ).
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51 resSecStr() & secBounds() return one of the following:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52 'H' = alpha helix
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53 'B' = residue in isolated beta-bridge
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54 'E' = extended strand, participates in beta ladder
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55 'G' = 3-helix (3/10 helix)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56 'I' = 5 helix (pi helix)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 'T' = hydrogen bonded turn
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58 'S' = bend
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59 '' = no assignment
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 A more general classification is returned using the resSecStrSum()
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62 method. The purpose of this is to have a method for DSSP and STRIDE
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63 derived output whose range is the same.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64 Its output is one of the following:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66 'H' = helix ( => 'H', 'G', or 'I' from above )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67 'B' = beta ( => 'B' or 'E' from above )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68 'T' = turn ( => 'T' or 'S' from above )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69 ' ' = no assignment ( => ' ' from above )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71 The methods are roughly divided into 3 sections:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72 1. Global features of this structure (PDB ID, total surface area,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73 etc.). These methods do not require an argument.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74 2. Residue specific features ( amino acid, secondary structure,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75 solvent exposed surface area, etc. ). These methods do require an
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76 arguement. The argument is supposed to uniquely identify a
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77 residue described within the structure. It can be of any of the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78 following forms:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79 ('#A:B') or ( #, 'A', 'B' )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80 || |
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81 || - Chain ID (blank for single chain)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82 |--- Insertion code for this residue. Blank for most residues.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83 |--- Numeric portion of residue ID.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85 (#)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86 |
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87 --- Numeric portion of residue ID. If there is only one chain and
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88 it has no ID AND there is no residue with an insertion code at this
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89 number, then this can uniquely specify a residue.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91 ('#:C') or ( #, 'C' )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92 | |
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 | -Chain ID
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94 ---Numeric portion of residue ID.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96 If a residue is incompletely specified then the first residue that
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 fits the arguments is returned. For example, if 19 is the argument
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98 and there are three chains, A, B, and C with a residue whose number
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99 is 19, then 19:A will be returned (assuming its listed first).
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101 Since neither DSSP nor STRIDE correctly handle alt-loc codes, they
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102 are not supported by these modules.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104 3. Value-added methods. Return values are not verbatem strings
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105 parsed from DSSP or STRIDE output.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108 =head1 FEEDBACK
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110 =head2 Mailing Lists
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112 User feedback is an integral part of the evolution of this and other
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113 Bioperl modules. Send your comments and suggestions preferably to one
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114 of the Bioperl mailing lists. Your participation is much appreciated.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116 bioperl-l@bioperl.org - General discussion
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 http://bio.perl.org/MailList.html - About the mailing lists
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119 =head2 Reporting Bugs
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121 Report bugs to the Bioperl bug tracking system to help us keep track
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122 the bugs and their resolution. Bug reports can be submitted via email
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123 or the web:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125 bioperl-bugs@bio.perl.org
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126 http://bugzilla.bioperl.org/
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128 =head1 AUTHOR - Ed Green
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130 Email ed@compbio.berkeley.edu
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133 =head1 APPENDIX
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135 The rest of the documentation details each method.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136 Internal methods are preceded with a _
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140 package Bio::Structure::SecStr::DSSP::Res;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
142 use vars qw(@ISA);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
143 use Bio::Root::Root;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
144 use Bio::Root::IO;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
145 use Bio::PrimarySeq;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
146
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
147 @ISA = qw(Bio::Root::Root);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
148
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
149 # Would be a class variable if Perl had them
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
150
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
151 #attribute begin col # columns
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
152 our %lookUp = ( 'pdb_resnum' => [ 5, 5 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
153 'insertionco' => [ 10, 1 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
154 'pdb_chain' => [ 11, 1 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
155
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
156 'amino_acid' => [ 13, 1 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
157 'term_sig' => [ 14, 1 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
158
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
159 'ss_summary' => [ 16, 1 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
160 '3tph' => [ 18, 1 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
161 '4tph' => [ 19, 1 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
162 '5tph' => [ 20, 1 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
163 'geo_bend' => [ 21, 1 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
164 'chirality' => [ 22, 1 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
165 'beta_br1la' => [ 23, 1 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
166 'beta_br2la' => [ 24, 1 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
167
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
168 'bb_part1nu' => [ 25, 4 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
169 'bb_part2nu' => [ 29, 4 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
170 'betash_lab' => [ 33, 1 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
171
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
172 'solv_acces' => [ 34, 4 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
173
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
174 'hb1_nh_o_p' => [ 39, 6 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
175 'hb1_nh_o_e' => [ 46, 4 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
176
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
177 'hb1_o_hn_p' => [ 50, 6 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
178 'hb1_o_hn_e' => [ 57, 4 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
179
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
180 'hb2_nh_o_p' => [ 61, 6 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
181 'hb2_nh_o_e' => [ 68, 4 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
182
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
183 'hb2_o_hn_p' => [ 72, 6 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
184 'hb2_o_hn_e' => [ 79, 4 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
185
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
186 'tco' => [ 85, 6 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
187
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
188 'kappa' => [ 91, 6 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
189
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
190 'alpha' => [ 97, 6 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
191
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
192 'phi' => [ 103, 6 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
193
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
194 'psi' => [ 109, 6 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
195
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
196 'x_ca' => [ 115, 7 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
197
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
198 'y_ca' => [ 122, 7 ],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
199
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
200 'z_ca' => [ 129, 7 ] );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
201
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
202
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
203 =head1 CONSTRUCTOR
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
204
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
205
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
206 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
207
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
208
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
209 =head2 new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
210
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
211 Title : new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
212 Usage : makes new object of this class
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
213 Function : Constructor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
214 Example : $dssp_obj = Bio::DSSP:Res->new( filename or FILEHANDLE )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
215 Returns : object (ref)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
216 Args : filename ( must be proper DSSP output file )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
217
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
218 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
219
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
220 sub new {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
221 my ( $class, @args ) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
222 my $self = $class->SUPER::new( @args );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
223 my $io = Bio::Root::IO->new( @args );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
224 $self->_parse( $io->_fh() );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
225 $io->close();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
226 return $self;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
227 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
228
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
229 =head1 ACCESSORS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
230
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
231
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
232 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
233
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
234 # GLOBAL FEATURES / INFO / STATS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
235
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
236 =head2 totSurfArea
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
237
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
238 Title : totSurfArea
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
239 Usage : returns total accessible surface area in square Ang.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
240 Function :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
241 Example : $surArea = $dssp_obj->totSurfArea();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
242 Returns : scalar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
243 Args : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
244
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
245 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
246
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
247 sub totSurfArea {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
248 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
249 return $self->{ 'Head' }->{ 'ProAccSurf' };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
250 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
251
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
252 =head2 numResidues
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
253
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
254 Title : numResidues
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
255 Usage : returns the total number of residues in all chains or
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
256 just the specified chain if a chain is specified
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
257 Function :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
258 Example : $num_res = $dssp_obj->numResidues();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
259 Returns : scalar int
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
260 Args : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
261
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
262
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
263 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
264
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
265 sub numResidues {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
266 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
267 my $chain = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
268 if ( !( $chain ) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
269 return $self->{'Head'}->{'TotNumRes'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
270 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
271 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
272 my ( $num_res,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
273 $cont_seg );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
274 my $cont_seg_pnt = $self->_contSegs();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
275 foreach $cont_seg ( @{ $cont_seg_pnt } ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
276 if ( $chain eq $cont_seg->[ 2 ] ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
277 # this segment is part of the chain we want
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
278 $num_res += ( $self->_toDsspKey( $cont_seg->[ 1 ] )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
279 - $self->_toDsspKey( $cont_seg->[ 0 ] )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
280 + 1 ); # this works because we know the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
281 # the region between the start
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
282 # and end of a dssp key is
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
283 # continuous
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
284 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
285 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
286 return $num_res;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
287 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
288 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
289
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
290 # STRAIGHT FROM PDB ENTRY
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
291
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
292 =head2 pdbID
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
293
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
294 Title : pdbID
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
295 Usage : returns pdb identifier ( 1FJM, e.g.)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
296 Function :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
297 Example : $pdb_id = $dssp_obj->pdbID();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
298 Returns : scalar string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
299 Args : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
300
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
301
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
302 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
303
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
304 sub pdbID {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
305 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
306 return $self->{'Head'}->{'PDB'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
307 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
308
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
309 =head2 pdbAuthor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
310
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
311 Title : pdbAuthor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
312 Usage : returns author field
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
313 Function :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
314 Example : $auth = $dssp_obj->pdbAuthor()
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
315 Returns : scalar string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
316 Args : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
317
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
318
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
319 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
320
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
321 sub pdbAuthor {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
322 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
323 return $self->{'Head'}->{'AUTHOR'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
324 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
325
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
326 =head2 pdbCompound
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
327
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
328 Title : pdbCompound
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
329 Usage : returns pdbCompound given in PDB file
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
330 Function :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
331 Example : $cmpd = $dssp_obj->pdbCompound();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
332 Returns : scalar string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
333 Args : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
334
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
335
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
336 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
337
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
338 sub pdbCompound {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
339 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
340 return $self->{'Head'}->{'COMPND'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
341 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
342
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
343 =head2 pdbDate
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
344
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
345 Title : pdbDate
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
346 Usage : returns date given in PDB file
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
347 Function :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
348 Example : $pdb_date = $dssp_obj->pdbDate();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
349 Returns : scalar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
350 Args : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
351
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
352
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
353 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
354
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
355 sub pdbDate {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
356 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
357 return $self->{'Head'}->{'DATE'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
358 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
359
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
360 =head2 pdbHeader
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
361
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
362 Title : pdbHeader
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
363 Usage : returns header info from PDB file
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
364 Function :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
365 Example : $header = $dssp_obj->pdbHeader();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
366 Returns : scalar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
367 Args : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
368
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
369
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
370 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
371
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
372 sub pdbHeader {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
373 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
374 return $self->{'Head'}->{'HEADER'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
375 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
376
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
377 =head2 pdbSource
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
378
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
379 Title : pdbSource
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
380 Usage : returns pdbSource information from PDBSOURCE line
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
381 Function :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
382 Example : $pdbSource = $dssp_obj->pdbSource();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
383 Returns : scalar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
384 Args : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
385
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
386
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
387 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
388
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
389 sub pdbSource {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
390 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
391 return $self->{'Head'}->{'SOURCE'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
392 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
393
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
394
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
395 # RESIDUE SPECIFIC ACCESSORS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
396
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
397 =head2 resAA
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
398
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
399 Title : resAA
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
400 Usage : fetches the 1 char amino acid code, given an id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
401 Function :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
402 Example : $aa = $dssp_obj->aminoAcid( '20:A' ); # pdb id as arg
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
403 Returns : 1 character scalar string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
404 Args : RESIDUE_ID
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
405
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
406
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
407 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
408
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
409 sub resAA {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
410 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
411 my @args = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
412 my $dssp_key = $self->_toDsspKey( @args );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
413 return $self->{ 'Res' }->[ $dssp_key ]->{ 'amino_acid' };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
414 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
415
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
416 =head2 resPhi
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
417
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
418 Title : resPhi
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
419 Usage : returns phi angle of a single residue
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
420 Function : accessor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
421 Example : $phi = $dssp_obj->resPhi( RESIDUE_ID )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
422 Returns : scalar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
423 Args : RESIDUE_ID
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
424
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
425
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
426 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
427
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
428 sub resPhi {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
429 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
430 my @args = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
431 my $dssp_key = $self->_toDsspKey( @args );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
432 return $self->{ 'Res' }->[ $dssp_key ]->{ 'phi' };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
433 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
434
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
435 =head2 resPsi
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
436
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
437 Title : resPsi
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
438 Usage : returns psi angle of a single residue
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
439 Function : accessor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
440 Example : $psi = $dssp_obj->resPsi( RESIDUE_ID )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
441 Returns : scalar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
442 Args : RESIDUE_ID
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
443
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
444
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
445 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
446
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
447 sub resPsi {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
448 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
449 my @args = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
450 my $dssp_key = $self->_toDsspKey( @args );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
451 return $self->{ 'Res' }->[ $dssp_key ]->{ 'psi' };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
452 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
453
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
454 =head2 resSolvAcc
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
455
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
456 Title : resSolvAcc
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
457 Usage : returns solvent exposed area of this residue in
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
458 square Angstroms
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
459 Function :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
460 Example : $solv_acc = $dssp_obj->resSolvAcc( RESIDUE_ID );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
461 Returns : scalar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
462 Args : RESIDUE_ID
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
463
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
464
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
465 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
466
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
467 sub resSolvAcc {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
468 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
469 my @args = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
470 my $dssp_key = $self->_toDsspKey( @args );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
471 return $self->{ 'Res' }->[ $dssp_key ]->{ 'solv_acces' };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
472 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
473
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
474 =head2 resSurfArea
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
475
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
476 Title : resSurfArea
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
477 Usage : returns solvent exposed area of this residue in
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
478 square Angstroms
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
479 Function :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
480 Example : $solv_acc = $dssp_obj->resSurfArea( RESIDUE_ID );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
481 Returns : scalar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
482 Args : RESIDUE_ID
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
483
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
484
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
485 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
486
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
487 sub resSurfArea {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
488 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
489 my @args = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
490 my $dssp_key = $self->_toDsspKey( @args );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
491 return $self->{ 'Res' }->[ $dssp_key ]->{ 'solv_acces' };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
492 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
493
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
494 =head2 resSecStr
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
495
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
496 Title : resSecStr
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
497 Usage : $ss = $dssp_obj->resSecStr( RESIDUE_ID );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
498 Function : returns the DSSP secondary structural designation of this residue
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
499 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
500 Returns : a character ( 'B', 'E', 'G', 'H', 'I', 'S', 'T', or ' ' )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
501 Args : RESIDUE_ID
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
502 NOTE : The range of this method differs from that of the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
503 resSecStr method in the STRIDE SecStr parser. That is because of the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
504 slightly different format for STRIDE and DSSP output. The resSecStrSum
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
505 method exists to map these different ranges onto an identical range.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
506
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
507 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
508
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
509 sub resSecStr {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
510 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
511 my @args = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
512 my $dssp_key = $self->_toDsspKey( @args );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
513 my $ss_char = $self->{ 'Res' }->[ $dssp_key ]->{ 'ss_summary' };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
514 return $ss_char if $ss_char;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
515 return ' ';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
516 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
517
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
518
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
519 =head2 resSecStrSum
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
520
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
521 Title : resSecStrSum
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
522 Usage : $ss = $dssp_obj->resSecStrSum( $id );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
523 Function : returns what secondary structure group this residue belongs
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
524 to. One of: 'H': helix ( H, G, or I )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
525 'B': beta ( B or E )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
526 'T': turn ( T or S )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
527 ' ': none ( ' ' )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
528 This method is similar to resSecStr, but the information
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
529 it returns is less specific.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
530 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
531 Returns : a character ( 'H', 'B', 'T', or ' ' )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
532 Args : dssp residue number of pdb residue identifier
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
533
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
534
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
535 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
536
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
537 sub resSecStrSum {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
538 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
539 my @args = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
540 my $dssp_key = $self->_toDsspKey( @args );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
541 my $ss_char = $self->{ 'Res' }->[ $dssp_key ]->{ 'ss_summary' };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
542 if ( $ss_char eq 'H' || $ss_char eq 'G' || $ss_char eq 'I' ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
543 return 'H';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
544 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
545 if ( $ss_char eq ' ' || !( $ss_char ) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
546 return ' ';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
547 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
548 if ( $ss_char eq 'B' || $ss_char eq 'E' ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
549 return 'B';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
550 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
551 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
552 return 'T';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
553 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
554 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
555
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
556 # DSSP SPECIFIC
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
557
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
558 =head2 hBonds
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
559
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
560 Title : hBonds
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
561 Usage : returns number of 14 different types of H Bonds
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
562 Function :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
563 Example : $hb = $dssp_obj->hBonds
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
564 Returns : pointer to 14 element array of ints
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
565 Args : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
566 NOTE : The different type of H-Bonds reported are, in order:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
567 TYPE O(I)-->H-N(J)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
568 IN PARALLEL BRIDGES
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
569 IN ANTIPARALLEL BRIDGES
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
570 TYPE O(I)-->H-N(I-5)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
571 TYPE O(I)-->H-N(I-4)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
572 TYPE O(I)-->H-N(I-3)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
573 TYPE O(I)-->H-N(I-2)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
574 TYPE O(I)-->H-N(I-1)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
575 TYPE O(I)-->H-N(I+0)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
576 TYPE O(I)-->H-N(I+1)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
577 TYPE O(I)-->H-N(I+2)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
578 TYPE O(I)-->H-N(I+3)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
579 TYPE O(I)-->H-N(I+4)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
580 TYPE O(I)-->H-N(I+5)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
581
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
582 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
583
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
584 sub hBonds {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
585 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
586 return $self->{ 'HBond'};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
587 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
588
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
589 =head2 numSSBr
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
590
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
591 Title : numSSBr
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
592 Usage : returns info about number of SS-bridges
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
593 Function :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
594 Example : @SS_br = $dssp_obj->numSSbr();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
595 Returns : 3 element scalar int array
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
596 Args : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
597
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
598
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
599 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
600
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
601 sub numSSBr {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
602 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
603 return ( $self->{'Head'}->{'TotSSBr'},
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
604 $self->{'Head'}->{'TotIaSSBr'},
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
605 $self->{'Head'}->{'TotIeSSBr'} );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
606 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
607
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
608 =head2 resHB_O_HN
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
609
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
610 Title : resHB_O_HN
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
611 Usage : returns pointer to a 4 element array
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
612 consisting of: relative position of binding
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
613 partner #1, energy of that bond (kcal/mol),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
614 relative positionof binding partner #2,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
615 energy of that bond (kcal/mol). If the bond
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
616 is not bifurcated, the second bond is reported
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
617 as 0, 0.0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
618 Function : accessor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
619 Example : $oBonds_ptr = $dssp_obj->resHB_O_HN( RESIDUE_ID )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
620 Returns : pointer to 4 element array
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
621 Args : RESIDUE_ID
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
622
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
623
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
624 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
625
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
626 sub resHB_O_HN {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
627 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
628 my @args = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
629 my $dssp_key = $self->_toDsspKey( @args );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
630 return ( $self->{ 'Res' }->[ $dssp_key ]->{ 'hb1_o_hn_p' },
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
631 $self->{ 'Res' }->[ $dssp_key ]->{ 'hb1_o_hn_e' },
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
632 $self->{ 'Res' }->[ $dssp_key ]->{ 'hb2_o_hn_p' },
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
633 $self->{ 'Res' }->[ $dssp_key ]->{ 'hb2_o_hn_e' } );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
634 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
635
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
636
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
637 =head2 resHB_NH_O
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
638
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
639 Title : resHB_NH_O
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
640 Usage : returns pointer to a 4 element array
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
641 consisting of: relative position of binding
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
642 partner #1, energy of that bond (kcal/mol),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
643 relative positionof binding partner #2,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
644 energy of that bond (kcal/mol). If the bond
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
645 is not bifurcated, the second bond is reported
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
646 as 0, 0.0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
647 Function : accessor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
648 Example : $nhBonds_ptr = $dssp_obj->resHB_NH_O( RESIDUE_ID )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
649 Returns : pointer to 4 element array
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
650 Args : RESIDUE_ID
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
651
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
652
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
653 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
654
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
655 sub resHB_NH_O {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
656 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
657 my @args = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
658 my $dssp_key = $self->_toDsspKey( @args );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
659 return ( $self->{ 'Res' }->[ $dssp_key ]->{ 'hb1_nh_o_p' },
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
660 $self->{ 'Res' }->[ $dssp_key ]->{ 'hb1_nh_o_e' },
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
661 $self->{ 'Res' }->[ $dssp_key ]->{ 'hb2_nh_o_p' },
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
662 $self->{ 'Res' }->[ $dssp_key ]->{ 'hb2_nh_o_e' } );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
663 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
664
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
665
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
666 =head2 resTco
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
667
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
668 Title : resTco
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
669 Usage : returns tco angle around this residue
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
670 Function : accessor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
671 Example : resTco = $dssp_obj->resTco( RESIDUE_ID )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
672 Returns : scalar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
673 Args : RESIDUE_ID
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
674
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
675
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
676 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
677
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
678 sub resTco {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
679 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
680 my @args = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
681 my $dssp_key = $self->_toDsspKey( @args );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
682 return $self->{ 'Res' }->[ $dssp_key ]->{ 'tco' };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
683 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
684
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
685
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
686 =head2 resKappa
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
687
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
688 Title : resKappa
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
689 Usage : returns kappa angle around this residue
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
690 Function : accessor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
691 Example : $kappa = $dssp_obj->resKappa( RESIDUE_ID )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
692 Returns : scalar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
693 Args : RESIDUE_ID ( dssp or PDB )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
694
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
695
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
696 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
697
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
698 sub resKappa {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
699 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
700 my @args = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
701 my $dssp_key = $self->_toDsspKey( @args );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
702 return $self->{ 'Res' }->[ $dssp_key ]->{ 'kappa' };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
703 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
704
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
705
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
706 =head2 resAlpha
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
707
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
708 Title : resAlpha
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
709 Usage : returns alpha angle around this residue
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
710 Function : accessor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
711 Example : $alpha = $dssp_obj->resAlpha( RESIDUE_ID )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
712 Returns : scalar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
713 Args : RESIDUE_ID ( dssp or PDB )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
714
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
715
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
716 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
717
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
718 sub resAlpha {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
719 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
720 my @args = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
721 my $dssp_key = $self->_toDsspKey( @args );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
722 return $self->{ 'Res' }->[ $dssp_key ]->{ 'alpha' };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
723 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
724
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
725 # VALUE ADDED METHODS (NOT JUST PARSE/REPORT)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
726
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
727 =head2 secBounds
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
728
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
729 Title : secBounds
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
730 Usage : gets residue ids of boundary residues in each
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
731 contiguous secondary structural element of specified
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
732 chain
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
733 Function : returns pointer to array of 3 element arrays. First
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
734 two elements are the PDB IDs of the start and end points,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
735 respectively and inclusively. The last element is the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
736 DSSP secondary structural assignment code,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
737 i.e. one of : ('B', 'E', 'G', 'H', 'I', 'S', 'T', or ' ')
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
738 Example : $ss_elements_pts = $dssp_obj->secBounds( 'A' );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
739 Returns : pointer to array of arrays
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
740 Args : chain id ( 'A', for example ). No arg => no chain id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
741
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
742
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
743 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
744
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
745 sub secBounds {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
746 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
747 my $chain = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
748 my %sec_bounds;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
749
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
750 $chain = '-' if ( !( $chain ) || $chain eq ' ' || $chain eq '-' );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
751
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
752 # if we've memoized this chain, use that
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
753 if ( $self->{ 'SecBounds' } ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
754 # check to make sure chain is valid
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
755 if ( !( $self->{ 'SecBounds' }->{ $chain } ) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
756 $self->throw( "No such chain: $chain\n" );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
757 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
758 return $self->{ 'SecBounds' }->{ $chain };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
759 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
760
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
761 my ( $cur_element, $i, $cur_chain, $beg, );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
762
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
763 #initialize
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
764 $cur_element = $self->{ 'Res' }->[ 1 ]->{ 'ss_summary' };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
765 $beg = 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
766
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
767 for ( $i = 2; $i <= $self->_numResLines() - 1; $i++ ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
768 if ( $self->{ 'Res' }->[ $i ]->{ 'amino_acid' } eq '!' ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
769 # element is terminated by a chain discontinuity
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
770 push( @{ $sec_bounds{ $self->_pdbChain( $beg ) } },
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
771 [ $self->_toPdbId( $beg ),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
772 $self->_toPdbId( $i - 1 ),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
773 $cur_element ] );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
774 $i++;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
775 $beg = $i;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
776 $cur_element = $self->{ 'Res' }->[ $i ]->{ 'ss_summary' };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
777 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
778
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
779 elsif ( $self->{ 'Res' }->[ $i ]->{ 'ss_summary' } ne $cur_element ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
780 # element is terminated by beginning of a new element
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
781 push( @{ $sec_bounds{ $self->_pdbChain( $beg ) } },
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
782 [ $self->_toPdbId( $beg ),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
783 $self->_toPdbId( $i - 1 ),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
784 $cur_element ] );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
785 $beg = $i;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
786 $cur_element = $self->{ 'Res' }->[ $i ]->{ 'ss_summary' };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
787 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
788 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
789 #last residue
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
790 if ( $self->{ 'Res' }->[ $i ]->{ 'ss_summary' } eq $cur_element ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
791 push( @{ $sec_bounds{ $self->_pdbChain( $beg ) } },
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
792 [ $self->_toPdbId( $beg ),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
793 $self->_toPdbId( $i ),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
794 $cur_element ] );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
795 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
796
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
797 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
798 push( @{ $sec_bounds{ $self->_pdbChain( $beg ) } },
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
799 [ $self->_toPdbId( $beg ),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
800 $self->_toPdbId( $i - 1 ),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
801 $cur_element ] );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
802 push( @{ $sec_bounds{ $self->_pdbChain( $i ) } },
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
803 [ $self->_toPdbId( $i ),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
804 $self->_toPdbId( $i ),
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
805 $self->{ 'Res' }->[ $i ]->{ 'ss_summary' } ] );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
806 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
807
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
808 $self->{ 'SecBounds' } = \%sec_bounds;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
809
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
810 # check to make sure chain is valid
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
811 if ( !( $self->{ 'SecBounds' }->{ $chain } ) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
812 $self->throw( "No such chain: $chain\n" );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
813 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
814
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
815 return $self->{ 'SecBounds' }->{ $chain };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
816 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
817
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
818
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
819
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
820 =head2 chains
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
821
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
822 Title : chains
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
823 Usage : returns pointer to array of chain I.D.s (characters)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
824 Function :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
825 Example : $chains_pnt = $dssp_obj->chains();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
826 Returns : array of characters, one of which may be ' '
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
827 Args : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
828
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
829
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
830 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
831
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
832 sub chains {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
833 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
834 my $cont_segs = $self->_contSegs();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
835 my %chains;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
836 my $seg;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
837 foreach $seg ( @{ $cont_segs } ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
838 $chains{ $seg->[ 2 ] } = 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
839 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
840 my @chains = keys( %chains );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
841 return \@chains;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
842 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
843
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
844
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
845 =head2 getSeq
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
846
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
847 Title : getSeq
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
848 Usage : returns a Bio::PrimarySeq object which represents a good
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
849 guess at the sequence of the given chain
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
850 Function : For most chains of most entries, the sequence returned by
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
851 this method will be very good. However, it is inherently
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
852 unsafe to rely on DSSP to extract sequence information about
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
853 a PDB entry. More reliable information can be obtained from
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
854 the PDB entry itself.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
855 Example : $pso = $dssp_obj->getSeq( 'A' );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
856 Returns : (pointer to) a PrimarySeq object
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
857 Args : Chain identifier. If none given, ' ' is assumed. If no ' '
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
858 chain, the first chain is used.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
859
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
860
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
861 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
862
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
863 sub getSeq {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
864 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
865 my $chain = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
866
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
867 my ( $pot_chain,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
868 $seq,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
869 $frag_num,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
870 $frag,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
871 $curPdbNum,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
872 $lastPdbNum,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
873 $gap_len,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
874 $i,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
875 $id,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
876 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
877 my @frags;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
878
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
879 if ( !( $chain ) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
880 $chain = ' ';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
881 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
882
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
883 if ( $self->{ 'Seq' }->{ $chain } ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
884 return $self->{ 'Seq' }->{ $chain };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
885 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
886
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
887 my $contSegs_pnt = $self->_contSegs();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
888
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
889 # load up specified chain
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
890 foreach $pot_chain ( @{ $contSegs_pnt } ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
891 if ( $pot_chain->[ 2 ] eq $chain ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
892 push( @frags, $pot_chain );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
893 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
894 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
895
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
896 # if that didn't work, just get the first one
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
897 if ( !( @frags ) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
898 $chain = $contSegs_pnt->[ 0 ]->[ 2 ];
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
899 foreach $pot_chain ( @{ $contSegs_pnt } ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
900 if ( $pot_chain->[ 2 ] eq $chain ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
901 push( @frags, $chain );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
902 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
903 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
904 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
905
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
906 # now build the sequence string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
907 $seq = "";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
908 $frag_num = 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
909 foreach $frag ( @frags ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
910 $frag_num++;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
911 if ( $frag_num > 1 ) { # we need to put in some gap seq
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
912 $curPdbNum = $self->_pdbNum( $frag->[ 0 ] );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
913 $gap_len = $curPdbNum - $lastPdbNum - 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
914 if ( $gap_len > 0 ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
915 $seq .= 'u' x $gap_len;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
916 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
917 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
918 $seq .= 'u';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
919 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
920 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
921 for ( $i = $frag->[ 0 ]; $i <= $frag->[ 1 ]; $i++ ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
922 $seq .= $self->_resAA( $i );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
923 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
924 $lastPdbNum = $self->_pdbNum( $i - 1 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
925 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
926
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
927
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
928
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
929 $id = $self->pdbID();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
930 $id .= ":$chain";
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
931
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
932 $self->{ 'Seq' }->{ $chain } = Bio::PrimarySeq->new ( -seq => $seq,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
933 -id => $id,
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
934 -moltype => 'protein'
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
935 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
936 return $self->{ 'Seq' }->{ $chain };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
937 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
938
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
939 =head1 INTERNAL METHODS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
940
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
941
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
942 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
943
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
944 =head2 _pdbChain
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
945
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
946 Title : _pdbChain
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
947 Usage : returns the pdb chain id of given residue
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
948 Function :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
949 Example : $chain_id = $dssp_obj->pdbChain( DSSP_KEY );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
950 Returns : scalar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
951 Args : DSSP_KEY ( dssp or pdb )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
952
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
953
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
954 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
955
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
956 sub _pdbChain {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
957 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
958 my $dssp_key = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
959 return $self->{ 'Res' }->[ $dssp_key ]->{ 'pdb_chain' };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
960 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
961
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
962 =head2 _resAA
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
963
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
964 Title : _resAA
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
965 Usage : fetches the 1 char amino acid code, given a dssp id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
966 Function :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
967 Example : $aa = $dssp_obj->_resAA( dssp_id );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
968 Returns : 1 character scalar string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
969 Args : dssp_id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
970
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
971
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
972 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
973
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
974 sub _resAA {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
975 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
976 my $dssp_key = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
977 return $self->{ 'Res' }->[ $dssp_key ]->{ 'amino_acid' };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
978 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
979
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
980
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
981 =head2 _pdbNum
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
982
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
983 Title : _pdbNum
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
984 Usage : fetches the numeric portion of the identifier for a given
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
985 residue as reported by the pdb entry. Note, this DOES NOT
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
986 uniquely specify a residue. There may be an insertion code
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
987 and/or chain identifier differences.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
988 Function :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
989 Example : $pdbNum = $self->_pdbNum( DSSP_ID );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
990 Returns : a scalar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
991 Args : DSSP_ID
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
992
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
993
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
994 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
995
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
996 sub _pdbNum {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
997 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
998 my $dssp_key = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
999 return $self->{ 'Res' }->[ $dssp_key ]->{ 'pdb_resnum' };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1000 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1001
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1002 =head2 _pdbInsCo
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1003
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1004 Title : _pdbInsCo
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1005 Usage : fetches the Insertion Code for this residue, if it has one.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1006 Function :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1007 Example : $pdbNum = $self->_pdbInsCo( DSSP_ID );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1008 Returns : a scalar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1009 Args : DSSP_ID
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1010
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1011
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1012 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1013
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1014 sub _pdbInsCo {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1015 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1016 my $dssp_key = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1017 return $self->{ 'Res' }->[ $dssp_key ]->{ 'insertionco' };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1018 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1019
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1020 =head2 _toPdbId
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1021
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1022 Title : _toPdbId
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1023 Usage : Takes a dssp key and builds the corresponding
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1024 PDB identifier string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1025 Function :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1026 Example : $pdbId = $self->_toPdbId( DSSP_ID );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1027 Returns : scalar
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1028 Args : DSSP_ID
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1029
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1030 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1031
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1032 sub _toPdbId {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1033 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1034 my $dssp_key = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1035 my $pdbId = ( $self->_pdbNum( $dssp_key ).
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1036 $self->_pdbInsCo( $dssp_key ) );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1037 my $chain = $self->_pdbChain( $dssp_key );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1038 $pdbId = "$pdbId:$chain" if $chain;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1039 return $pdbId;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1040 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1041
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1042 =head2 _contSegs
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1043
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1044 Title : _contSegs
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1045 Usage : find the endpoints of continuous regions of this structure
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1046 Function : returns pointer to array of 3 element array.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1047 Elements are the dssp keys of the start and end points of each
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1048 continuous element and its PDB chain id (may be blank).
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1049 Note that it is common to have several
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1050 continuous elements with the same chain id. This occurs
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1051 when an internal region is disordered and no structural
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1052 information is available.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1053 Example : $cont_seg_ptr = $dssp_obj->_contSegs();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1054 Returns : pointer to array of arrays
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1055 Args : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1056
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1057
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1058 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1059
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1060 sub _contSegs {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1061 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1062 if ( $self->{ 'contSegs' } ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1063 return $self->{ 'contSegs' };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1064 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1065 else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1066 # first time, so make contSegs
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1067 my ( $cur_chain, $i, $beg );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1068 my @contSegs;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1069 #initialize
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1070 $cur_chain = $self->_pdbChain( 1 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1071 $beg = 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1072 #internal residues
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1073 for ( $i = 2; $i <= $self->_numResLines() - 1; $i++ ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1074 if ( $self->{ 'Res' }->[ $i ]->{ 'amino_acid' } eq '!' ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1075 push( @contSegs, [ $beg, $i - 1, $cur_chain ] );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1076 $beg = $i + 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1077 $cur_chain = $self->_pdbChain( $i + 1 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1078 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1079 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1080 # last residue must be the end of a chain
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1081 push( @contSegs, [ $beg, $i, $cur_chain ] );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1082
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1083 $self->{ 'contSegs' } = \@contSegs;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1084 return $self->{ 'contSegs' };
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1085 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1086 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1087
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1088 =head2 _numResLines
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1089
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1090 Title : _numResLines
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1091 Usage : returns the total number of residue lines in this
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1092 dssp file.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1093 This number is DIFFERENT than the number of residues in
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1094 the pdb file because dssp has chain termination and chain
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1095 discontinuity 'residues'.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1096 Function :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1097 Example : $num_res = $dssp_obj->_numResLines();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1098 Returns : scalar int
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1099 Args : none
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1100
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1101
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1102 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1103
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1104 sub _numResLines {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1105 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1106 return ( $#{$self->{ 'Res' }} );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1107 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1108
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1109 =head2 _toDsspKey
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1110
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1111 Title : _toDsspKey
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1112 Usage : returns the unique dssp integer key given a pdb residue id.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1113 All accessor methods require (internally)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1114 the dssp key. This method is very useful in converting
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1115 pdb keys to dssp keys so the accessors can accept pdb keys
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1116 as argument. PDB Residue IDs are inherently
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1117 problematic since they have multiple parts of
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1118 overlapping function and ill-defined or observed
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1119 convention in form. Input can be in any of the formats
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1120 described in the DESCRIPTION section above.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1121 Function :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1122 Example : $dssp_id = $dssp_obj->_pdbKeyToDsspKey( '10B:A' )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1123 Returns : scalar int
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1124 Args : pdb residue identifier: num[insertion code]:[chain]
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1125
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1126
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1127 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1128
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1129 sub _toDsspKey {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1130 # Consider adding lookup table for 'common' name (like 20:A) for
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1131 # fast access. Could be built during parse of input.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1132
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1133 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1134 my $arg_str;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1135
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1136 my ( $key_num, $chain_id, $ins_code );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1137
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1138 # check to see how many args are given
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1139 if ( $#_ > 1 ) { # multiple args
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1140 $key_num = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1141 if ( $#_ > 1 ) { # still multiple args => ins. code, too
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1142 $ins_code = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1143 $chain_id = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1144 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1145 else { # just one more arg. => chain_id
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1146 $chain_id = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1147 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1148 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1149 else { # only single arg. Might be number or string
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1150 $arg_str = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1151 if ( $arg_str =~ /:/ ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1152 # a chain is specified
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1153 ( $chain_id ) = ( $arg_str =~ /:(.)/);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1154 $arg_str =~ s/:.//;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1155 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1156 if ( $arg_str =~ /[A-Z]|[a-z]/ ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1157 # an insertion code is specified
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1158 ( $ins_code ) = ( $arg_str =~ /([A-Z]|[a-z])/ );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1159 $arg_str =~ s/[A-Z]|[a-z]//g;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1160 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1161 #now, get the number bit-> everything still around
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1162 $key_num = $arg_str;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1163 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1164
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1165 # Now find the residue which fits this description. Linear search is
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1166 # probably not the best way to do this, but oh well...
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1167 for ( my $i = 1; $i <= $self->_numResLines(); $i++ ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1168 if ( $key_num == $self->{'Res'}->[$i]->{'pdb_resnum'} ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1169 if ( $chain_id ) { # if a chain was specified
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1170 if ( $chain_id eq $self->{'Res'}->[$i]->{'pdb_chain'} ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1171 # and it's the right one
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1172 if ( $ins_code ) { # if insertion code was specified
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1173 if ( $ins_code eq $self->{'Res'}->[$i]->{'insertionco'} ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1174 # and it's the right one
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1175 return $i;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1176 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1177 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1178 else { # no isertion code specified, this is it
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1179 return $i;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1180 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1181 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1182 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1183 else { # no chain was specified
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1184 return $i;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1185 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1186 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1187 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1188 $self->throw( "PDB key not found." );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1189 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1190
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1191 =head2 _parse
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1192
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1193 Title : _parse
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1194 Usage : parses dssp output
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1195 Function :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1196 Example : used by the constructor
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1197 Returns :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1198 Args : input source ( handled by Bio::Root:IO )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1199
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1200
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1201 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1202
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1203 sub _parse {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1204 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1205 my $file = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1206 my $cur;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1207 my $current_chain;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1208 my ( @elements, @hbond );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1209 my ( %head, %his, );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1210 my $element;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1211 my $res_num;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1212
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1213 $cur = <$file>;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1214 unless ( $cur =~ /^==== Secondary Structure Definition/ ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1215 $self->throw( "Not dssp output" );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1216 return;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1217 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1218
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1219 $cur = <$file>;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1220 ( $element ) = ( $cur =~ /^REFERENCE\s+(.+?)\s+\./ );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1221 $head{ 'REFERENCE' } = $element;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1222
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1223 $cur = <$file>;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1224 @elements = split( /\s+/, $cur );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1225 pop( @elements ); # take off that annoying period
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1226 $head{ 'PDB' } = pop( @elements );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1227 $head{ 'DATE' } = pop( @elements );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1228 # now, everything else is "header" except for the word
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1229 # HEADER
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1230 shift( @elements );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1231 $element = shift( @elements );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1232 while ( @elements ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1233 $element = $element." ".shift( @elements );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1234 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1235 $head{ 'HEADER' } = $element;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1236
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1237 $cur = <$file>;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1238 ($element) = ( $cur =~ /^COMPND\s+(.+?)\s+\./ );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1239 $head{ 'COMPND' } = $element;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1240
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1241 $cur = <$file>;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1242 ($element) = ( $cur =~ /^PDBSOURCE\s+(.+?)\s+\./ );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1243 $head{ 'SOURCE' } = $element;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1244
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1245 $cur = <$file>;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1246 ($element) = ( $cur =~ /^AUTHOR\s+(.+?)\s+/ );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1247 $head{ 'AUTHOR' } = $element;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1248
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1249 $cur = <$file>;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1250 @elements = split( /\s+/, $cur );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1251 shift( @elements );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1252 $head{ 'TotNumRes' } = shift( @elements );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1253 $head{ 'NumChain' } = shift( @elements );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1254 $head{ 'TotSSBr' } = shift( @elements );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1255 $head{ 'TotIaSSBr' } = shift( @elements );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1256 $head{ 'TotIeSSBr' } = shift( @elements );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1257
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1258 $cur = <$file>;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1259 ( $element ) = ( $cur =~ /\s*(\d+\.\d*)\s+ACCESSIBLE SURFACE OF PROTEIN/ );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1260 $head{ 'ProAccSurf' } = $element;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1261 $self->{ 'Head' } = \%head;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1262
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1263 for ( my $i = 1; $i <= 14; $i++ ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1264 $cur = <$file>;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1265 ( $element ) =
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1266 $cur =~ /\s*(\d+)\s+\d+\.\d+\s+TOTAL NUMBER OF HYDROGEN/;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1267 push( @hbond, $element );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1268 # $hbond{ $hBondType } = $element;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1269 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1270 $self->{ 'HBond' } = \@hbond;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1271
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1272 my $histogram_finished = 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1273 while ( !($histogram_finished) && chomp( $cur = <$file> ) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1274 if ( $cur =~ /RESIDUE AA STRUCTURE/ ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1275 $histogram_finished = 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1276 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1277 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1278
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1279 while ( chomp( $cur = <$file> ) ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1280 $res_num = substr( $cur, 0, 5 );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1281 $res_num =~ s/\s//g;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1282 $self->{ 'Res' }->[ $res_num ] = &_parseResLine( $cur );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1283 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1284 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1285
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1286
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1287 =head2 _parseResLine
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1288
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1289 Title : _parseResLine
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1290 Usage : parses a single residue line
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1291 Function :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1292 Example : used internally
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1293 Returns :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1294 Args : residue line ( string )
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1295
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1296
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1297 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1298
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1299 sub _parseResLine() {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1300 my $cur = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1301 my ( $feat, $value );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1302 my %elements;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1303
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1304 foreach $feat ( keys %lookUp ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1305 $value = substr( $cur, $lookUp{ $feat }->[0],
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1306 $lookUp{ $feat }->[1] );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1307 $value =~ s/\s//g;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1308 $elements{$feat} = $value ;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1309 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1310
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1311 # if no chain id, make it '-' (like STRIDE...very convenient)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1312 if ( !( $elements{ 'pdb_chain' } ) || $elements{ 'pdb_chain'} eq ' ' ) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1313 $elements{ 'pdb_chain' } = '-';
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1314 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1315 return \%elements;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1316 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1317
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1318 return 1; #just because
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1319