BioPerl
view release on metacpan or search on metacpan
Bio/Structure/SecStr/DSSP/Res.pm view on Meta::CPAN
residue as reported by the pdb entry. Note, this DOES NOT
uniquely specify a residue. There may be an insertion code
and/or chain identifier differences.
Function :
Example : $pdbNum = $self->_pdbNum( DSSP_ID );
Returns : a scalar
Args : DSSP_ID
=cut
sub _pdbNum {
my $self = shift;
my $dssp_key = shift;
return $self->{ 'Res' }->[ $dssp_key ]->{ 'pdb_resnum' };
}
=head2 _pdbInsCo
Title : _pdbInsCo
Usage : fetches the Insertion Code for this residue, if it has one.
Function :
Example : $pdbNum = $self->_pdbInsCo( DSSP_ID );
Returns : a scalar
Args : DSSP_ID
=cut
sub _pdbInsCo {
my $self = shift;
my $dssp_key = shift;
return $self->{ 'Res' }->[ $dssp_key ]->{ 'insertionco' };
}
=head2 _toPdbId
Title : _toPdbId
Usage : Takes a dssp key and builds the corresponding
PDB identifier string
Function :
Example : $pdbId = $self->_toPdbId( DSSP_ID );
Returns : scalar
Args : DSSP_ID
=cut
sub _toPdbId {
my $self = shift;
my $dssp_key = shift;
my $pdbId = ( $self->_pdbNum( $dssp_key ).
$self->_pdbInsCo( $dssp_key ) );
my $chain = $self->_pdbChain( $dssp_key );
$pdbId = "$pdbId:$chain" if $chain;
return $pdbId;
}
=head2 _contSegs
Title : _contSegs
Usage : find the endpoints of continuous regions of this structure
Function : returns pointer to array of 3 element array.
Elements are the dssp keys of the start and end points of each
continuous element and its PDB chain id (may be blank).
Note that it is common to have several
continuous elements with the same chain id. This occurs
when an internal region is disordered and no structural
information is available.
Example : $cont_seg_ptr = $dssp_obj->_contSegs();
Returns : pointer to array of arrays
Args : none
=cut
sub _contSegs {
my $self = shift;
if ( $self->{ 'contSegs' } ) {
return $self->{ 'contSegs' };
}
else {
# first time, so make contSegs
my ( $cur_chain, $i, $beg );
my @contSegs;
#initialize
$cur_chain = $self->_pdbChain( 1 );
$beg = 1;
#internal residues
for ( $i = 2; $i <= $self->_numResLines() - 1; $i++ ) {
if ( $self->{ 'Res' }->[ $i ]->{ 'amino_acid' } eq '!' ) {
push( @contSegs, [ $beg, $i - 1, $cur_chain ] );
$beg = $i + 1;
$cur_chain = $self->_pdbChain( $i + 1 );
}
}
# last residue must be the end of a chain
push( @contSegs, [ $beg, $i, $cur_chain ] );
$self->{ 'contSegs' } = \@contSegs;
return $self->{ 'contSegs' };
}
}
=head2 _numResLines
Title : _numResLines
Usage : returns the total number of residue lines in this
dssp file.
This number is DIFFERENT than the number of residues in
the pdb file because dssp has chain termination and chain
discontinuity 'residues'.
Function :
Example : $num_res = $dssp_obj->_numResLines();
Returns : scalar int
Args : none
=cut
sub _numResLines {
my $self = shift;
( run in 1.301 second using v1.01-cache-2.11-cpan-39bf76dae61 )