NAME
Bio::Structure::SecStr::DSSP::Res - Module for parsing/accessing dssp output
SYNOPSIS
my $dssp_obj = Bio::Structure::SecStr::DSSP::Res->new('-file'=>'filename.dssp');# ormy $dssp_obj = Bio::Structure::SecStr::DSSP::Res->new('-fh'=>\*STDOUT);# get DSSP defined Secondary Structure for residue 20$sec_str = $dssp_obj->resSecStr( 20 );# get dssp defined sec. structure summary for PDB residue # 10 of chain A$sec_str = $dssp_obj->resSecStrSum( '10:A' );
DESCRIPTION
DSSP::Res is a module for objectifying DSSP output. Methods are then available for extracting all the information within the output file and convenient subsets of it. The principal purpose of DSSP is to determine secondary structural elements of a given structure.
( Dictionary of protein secondary structure: pattern recognitionof hydrogen-bonded and geometrical features.Biopolymers. 1983 Dec;22(12):2577-637. )
The DSSP program is available from:
http://www.cmbi.kun.nl/swift/dssp
This information is available on a per residue basis ( see resSecStr and resSecStrSum methods ) or on a per chain basis ( see secBounds method ).
resSecStr() & secBounds() return one of the following:
'H' = alpha helix
'B' = residue in isolated beta-bridge
'E' = extended strand, participates in beta ladder
'G' = 3-helix (3/10 helix)
'I' = 5 helix (pi helix)
'T' = hydrogen bonded turn
'S' = bend
'' = no assignment
A more general classification is returned using the resSecStrSum() method. The purpose of this is to have a method for DSSP and STRIDE derived output whose range is the same. Its output is one of the following:
'H' = helix ( => 'H', 'G', or 'I' from above )'B' = beta ( => 'B' or 'E' from above )'T' = turn ( => 'T' or 'S' from above )' ' = no assignment ( => ' ' from above )
The methods are roughly divided into 3 sections: 1. Global features of this structure (PDB ID, total surface area,
etc.). These methods do not require an argument. 2. Residue specific features ( amino acid, secondary structure,
solvent exposed surface area, etc. ). These methods do require an
argument. The argument is supposed to uniquely identify a
residue described within the structure. It can be of any of the
following forms:
('#A:B') or ( #, 'A', 'B' )
|| |
|| - Chain ID (blank for single chain)
|--- Insertion code for this residue. Blank for most residues.
|--- Numeric portion of residue ID.
(#)|--- Numeric portion of residue ID. If there is only one chain andit has no ID AND there is no residue with an insertion code at thisnumber, then this can uniquely specify a residue.('#:C') or ( #, 'C' )| || -Chain ID---Numeric portion of residue ID.If a residue is incompletely specified then the first residue thatfits the arguments is returned. For example, if 19 is the argumentand there are three chains, A, B, and C with a residue whose numberis 19, then 19:A will be returned (assuming its listed first).Since neither DSSP nor STRIDE correctly handle alt-loc codes, theyare not supported by these modules.
3. Value-added methods. Return values are not verbatem strings
parsed from DSSP or STRIDE output.
FEEDBACK
Mailing Lists
User feedback is an integral part of the evolution of this and other Bioperl modules. Send your comments and suggestions preferably to one of the Bioperl mailing lists. Your participation is much appreciated.
[email protected] - General discussionhttp://bioperl.org/wiki/Mailing_lists - About the mailing lists
Support
Please direct usage questions or support issues to the mailing list:
rather than to the module maintainer directly. Many experienced and reponsive experts will be able look at the problem and quickly address it. Please include a thorough description of the problem with code and data examples if at all possible.
Reporting Bugs
Report bugs to the Bioperl bug tracking system to help us keep track the bugs and their resolution. Bug reports can be submitted via the web:
https://github.com/bioperl/bioperl-live/issues
AUTHOR - Ed Green
Email [email protected]
APPENDIX
The rest of the documentation details each method. Internal methods are preceded with a _
CONSTRUCTOR
new
Title : newUsage : makes new object of this classFunction : ConstructorExample : $dssp_obj = Bio::DSSP:Res->new( filename or FILEHANDLE )Returns : object (ref)Args : filename ( must be proper DSSP output file )
ACCESSORS
totSurfArea
Title : totSurfAreaUsage : returns total accessible surface area in square And.Function :Example : $surArea = $dssp_obj->totSurfArea();Returns : scalarArgs : none
numResidues
Title : numResiduesUsage : returns the total number of residues in all chains orjust the specified chain if a chain is specifiedFunction :Example : $num_res = $dssp_obj->numResidues();Returns : scalar intArgs : none
pdbID
Title : pdbIDUsage : returns pdb identifier ( 1FJM, e.g.)Function :Example : $pdb_id = $dssp_obj->pdbID();Returns : scalar stringArgs : none
pdbAuthor
Title : pdbAuthorUsage : returns author fieldFunction :Example : $auth = $dssp_obj->pdbAuthor()Returns : scalar stringArgs : none
pdbCompound
Title : pdbCompoundUsage : returns pdbCompound given in PDB fileFunction :Example : $cmpd = $dssp_obj->pdbCompound();Returns : scalar stringArgs : none
pdbDate
Title : pdbDateUsage : returns date given in PDB fileFunction :Example : $pdb_date = $dssp_obj->pdbDate();Returns : scalarArgs : none
pdbHeader
Title : pdbHeaderUsage : returns header info from PDB fileFunction :Example : $header = $dssp_obj->pdbHeader();Returns : scalarArgs : none
pdbSource
Title : pdbSourceUsage : returns pdbSource information from PDBSOURCE lineFunction :Example : $pdbSource = $dssp_obj->pdbSource();Returns : scalarArgs : none
resAA
Title : resAAUsage : fetches the 1 char amino acid code, given an idFunction :Example : $aa = $dssp_obj->resAA( '20:A' ); # pdb id as argReturns : 1 character scalar stringArgs : RESIDUE_ID
resPhi
Title : resPhiUsage : returns phi angle of a single residueFunction : accessorExample : $phi = $dssp_obj->resPhi( RESIDUE_ID )Returns : scalarArgs : RESIDUE_ID
resPsi
Title : resPsiUsage : returns psi angle of a single residueFunction : accessorExample : $psi = $dssp_obj->resPsi( RESIDUE_ID )Returns : scalarArgs : RESIDUE_ID
resSolvAcc
Title : resSolvAccUsage : returns solvent exposed area of this residue insquare AndstromsFunction :Example : $solv_acc = $dssp_obj->resSolvAcc( RESIDUE_ID );Returns : scalarArgs : RESIDUE_ID
resSurfArea
Title : resSurfAreaUsage : returns solvent exposed area of this residue insquare AndstromsFunction :Example : $solv_acc = $dssp_obj->resSurfArea( RESIDUE_ID );Returns : scalarArgs : RESIDUE_ID
resSecStr
Title : resSecStrUsage : $ss = $dssp_obj->resSecStr( RESIDUE_ID );Function : returns the DSSP secondary structural designation of this residueExample :Returns : a character ( 'B', 'E', 'G', 'H', 'I', 'S', 'T', or ' ' )Args : RESIDUE_IDNOTE : The range of this method differs from that of theresSecStr method in the STRIDE SecStr parser. That is because of theslightly different format for STRIDE and DSSP output. The resSecStrSummethod exists to map these different ranges onto an identical range.
resSecStrSum
Title : resSecStrSumUsage : $ss = $dssp_obj->resSecStrSum( $id );Function : returns what secondary structure group this residue belongsto. One of: 'H': helix ( H, G, or I )'B': beta ( B or E )'T': turn ( T or S )' ': none ( ' ' )This method is similar to resSecStr, but the informationit returns is less specific.Example :Returns : a character ( 'H', 'B', 'T', or ' ' )Args : dssp residue number of pdb residue identifier
hBonds
Title : hBondsUsage : returns number of 14 different types of H BondsFunction :Example : $hb = $dssp_obj->hBondsReturns : pointer to 14 element array of intsArgs : noneNOTE : The different type of H-Bonds reported are, in order:TYPE O(I)-->H-N(J)IN PARALLEL BRIDGESIN ANTIPARALLEL BRIDGESTYPE O(I)-->H-N(I-5)TYPE O(I)-->H-N(I-4)TYPE O(I)-->H-N(I-3)TYPE O(I)-->H-N(I-2)TYPE O(I)-->H-N(I-1)TYPE O(I)-->H-N(I+0)TYPE O(I)-->H-N(I+1)TYPE O(I)-->H-N(I+2)TYPE O(I)-->H-N(I+3)TYPE O(I)-->H-N(I+4)TYPE O(I)-->H-N(I+5)
numSSBr
Title : numSSBrUsage : returns info about number of SS-bridgesFunction :Example : @SS_br = $dssp_obj->numSSbr();Returns : 3 element scalar int arrayArgs : none
resHB_O_HN
Title : resHB_O_HNUsage : returns pointer to a 4 element arrayconsisting of: relative position of bindingpartner #1, energy of that bond (kcal/mol),relative positionof binding partner #2,energy of that bond (kcal/mol). If the bondis not bifurcated, the second bond is reportedas 0, 0.0Function : accessorExample : $oBonds_ptr = $dssp_obj->resHB_O_HN( RESIDUE_ID )Returns : pointer to 4 element arrayArgs : RESIDUE_ID
resHB_NH_O
Title : resHB_NH_OUsage : returns pointer to a 4 element arrayconsisting of: relative position of bindingpartner #1, energy of that bond (kcal/mol),relative positionof binding partner #2,energy of that bond (kcal/mol). If the bondis not bifurcated, the second bond is reportedas 0, 0.0Function : accessorExample : $nhBonds_ptr = $dssp_obj->resHB_NH_O( RESIDUE_ID )Returns : pointer to 4 element arrayArgs : RESIDUE_ID
resTco
Title : resTcoUsage : returns tco angle around this residueFunction : accessorExample : resTco = $dssp_obj->resTco( RESIDUE_ID )Returns : scalarArgs : RESIDUE_ID
resKappa
Title : resKappaUsage : returns kappa angle around this residueFunction : accessorExample : $kappa = $dssp_obj->resKappa( RESIDUE_ID )Returns : scalarArgs : RESIDUE_ID ( dssp or PDB )
resAlpha
Title : resAlphaUsage : returns alpha angle around this residueFunction : accessorExample : $alpha = $dssp_obj->resAlpha( RESIDUE_ID )Returns : scalarArgs : RESIDUE_ID ( dssp or PDB )
secBounds
Title : secBoundsUsage : gets residue ids of boundary residues in eachcontiguous secondary structural element of specifiedchainFunction : returns pointer to array of 3 element arrays. Firsttwo elements are the PDB IDs of the start and end points,respectively and inclusively. The last element is theDSSP secondary structural assignment code,i.e. one of : ('B', 'E', 'G', 'H', 'I', 'S', 'T', or ' ')Example : $ss_elements_pts = $dssp_obj->secBounds( 'A' );Returns : pointer to array of arraysArgs : chain id ( 'A', for example ). No arg => no chain id
chains
Title : chainsUsage : returns pointer to array of chain I.D.s (characters)Function :Example : $chains_pnt = $dssp_obj->chains();Returns : array of characters, one of which may be ' 'Args : none
residues
Title : residuesUsage : returns array of residue identifiers for all residues inthe output file, or in a specific chainFunction :Example : @residues_ids = $dssp_obj->residues()Returns : array of residue identifiersArgs : if none => returns residue ids of all residues of allchains (in order); if chain id is given, returns just the residueids of residues in that chain
getSeq
Title : getSeqUsage : returns a Bio::PrimarySeq object which represents a goodguess at the sequence of the given chainFunction : For most chains of most entries, the sequence returned bythis method will be very good. However, it is inherentlyunsafe to rely on DSSP to extract sequence information abouta PDB entry. More reliable information can be obtained fromthe PDB entry itself.Example : $pso = $dssp_obj->getSeq( 'A' );Returns : (pointer to) a PrimarySeq objectArgs : Chain identifier. If none given, ' ' is assumed. If no ' 'chain, the first chain is used.
INTERNAL METHODS
_pdbChain
Title : _pdbChainUsage : returns the pdb chain id of given residueFunction :Example : $chain_id = $dssp_obj->pdbChain( DSSP_KEY );Returns : scalarArgs : DSSP_KEY ( dssp or pdb )
_resAA
Title : _resAAUsage : fetches the 1 char amino acid code, given a dssp idFunction :Example : $aa = $dssp_obj->_resAA( dssp_id );Returns : 1 character scalar stringArgs : dssp_id
_pdbNum
Title : _pdbNumUsage : fetches the numeric portion of the identifier for a givenresidue as reported by the pdb entry. Note, this DOES NOTuniquely specify a residue. There may be an insertion codeand/or chain identifier differences.Function :Example : $pdbNum = $self->_pdbNum( DSSP_ID );Returns : a scalarArgs : DSSP_ID
_pdbInsCo
Title : _pdbInsCoUsage : fetches the Insertion Code for this residue, if it has one.Function :Example : $pdbNum = $self->_pdbInsCo( DSSP_ID );Returns : a scalarArgs : DSSP_ID
_toPdbId
Title : _toPdbIdUsage : Takes a dssp key and builds the correspondingPDB identifier stringFunction :Example : $pdbId = $self->_toPdbId( DSSP_ID );Returns : scalarArgs : DSSP_ID
_contSegs
Title : _contSegsUsage : find the endpoints of continuous regions of this structureFunction : returns pointer to array of 3 element array.Elements are the dssp keys of the start and end points of eachcontinuous element and its PDB chain id (may be blank).Note that it is common to have severalcontinuous elements with the same chain id. This occurswhen an internal region is disordered and no structuralinformation is available.Example : $cont_seg_ptr = $dssp_obj->_contSegs();Returns : pointer to array of arraysArgs : none
_numResLines
Title : _numResLinesUsage : returns the total number of residue lines in thisdssp file.This number is DIFFERENT than the number of residues inthe pdb file because dssp has chain termination and chaindiscontinuity 'residues'.Function :Example : $num_res = $dssp_obj->_numResLines();Returns : scalar intArgs : none
_toDsspKey
Title : _toDsspKeyUsage : returns the unique dssp integer key given a pdb residue id.All accessor methods require (internally)the dssp key. This method is very useful in convertingpdb keys to dssp keys so the accessors can accept pdb keysas argument. PDB Residue IDs are inherentlyproblematic since they have multiple parts ofoverlapping function and ill-defined or observedconvention in form. Input can be in any of the formatsdescribed in the DESCRIPTION section above.Function :Example : $dssp_id = $dssp_obj->_pdbKeyToDsspKey( '10B:A' )Returns : scalar intArgs : pdb residue identifier: num[insertion code]:[chain]
_parse
Title : _parseUsage : parses dssp outputFunction :Example : used by the constructorReturns :Args : input source ( handled by Bio::Root:IO )
_parseResLine
Title : _parseResLineUsage : parses a single residue lineFunction :Example : used internallyReturns :Args : residue line ( string )