NAME
Bio::Structure::SecStr::STRIDE::Res - Module for parsing/accessing stride output
SYNOPSIS
my $stride_obj = Bio::Structure::SecStr::STRIDE::Res->new( '-file' => 'filename.stride' );# ormy $stride_obj = Bio::Structure::SecStr::STRIDE::Res->new( '-fh' => \*STDOUT );# Get secondary structure assignment for PDB residue 20 of chain A$sec_str = $stride_obj->resSecStr( '20:A' );# same$sec_str = $stride_obj->resSecStr( 20, 'A' )
DESCRIPTION
STRIDE::Res is a module for objectifying STRIDE output. STRIDE is a program (similar to DSSP) for assigning secondary structure to individual residues of a pdb structure file.
( Knowledge-Based Protein Secondary Structure Assignment,PROTEINS: Structure, Function, and Genetics 23:566-579 (1995) )
STRIDE is available here: http://webclu.bio.wzw.tum.de/stride/
Methods are then available for extracting all of the information present within the output or convenient subsets of it.
Although they are very similar in function, DSSP and STRIDE differ somewhat in output format. Thes differences are reflected in the return value of some methods of these modules. For example, both the STRIDE and DSSP parsers have resSecStr() methods for returning the secondary structure of a given residue. However, the range of return values for DSSP is ( H, B, E, G, I, T, and S ) whereas the range of values for STRIDE is ( H, G, I, E, B, b, T, and C ). See individual methods for details.
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 anargument. The argument is supposed to uniquely identify aresidue described within the structure. It can be of any of thefollowing 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 stringsparsed from DSSP or STRIDE output.
FEEDBACK
MailingLists
UsUser 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 _.
new
Title : newUsage : makes new object of this classFunction : ConstructorExample : $stride_obj = Bio::Structure::SecStr::STRIDE:Res->new( '-file' => filename# or'-fh' => FILEHANDLE )Returns : object (ref)Args : filename or filehandle( must be proper STRIDE output )
totSurfArea
Title : totSurfAreaUsage : returns sum of surface areas of all residues of allchains considered. Result is memoized.Function :Example : $tot_SA = $stride_obj->totSurfArea();Returns : scalarArgs : none
numResidues
Title : numResiduesUsage : returns total number of residues in all chains orjust the specified chainFunction :Example : $tot_res = $stride_obj->numResidues();Returns : scalar intArgs : none or chain id
pdbID
Title : pdbIDUsage : returns pdb identifier ( 1FJM, e.g. )Function :Example : $pdb_id = $stride_obj->pdbID();Returns : scalar stringArgs : none
pdbAuthor
Title : pdbAuthorUsage : returns author of this PDB entryFunction :Example : $auth = $stride_obj->pdbAuthor()Returns : scalar stringArgs : none
pdbCompound
Title : pdbCompoundUsage : returns string of what was found on theCMP linesFunction :Example : $cmp = $stride_obj->pdbCompound();Returns : stringArgs : none
pdbDate
Title : pdbDateUsage : returns date given in PDB fileFunction :Example : $pdb_date = $stride_obj->pdbDate();Returns : scalarArgs : none
pdbHeader
Title : pdbHeaderUsage : returns string of characters found on the PDB header lineFunction :Example : $head = $stride_obj->pdbHeader();Returns : scalarArgs : none
pdbSource
Title : pdbSourceUsage : returns string of what was found on SRC linesFunction :Example : $src = $stride_obj->pdbSource();Returns : scalarArgs : none
resAA
Title : resAAUsage : returns 1 letter abbr. of the amino acid specified bythe argumentsFunction :Examples : $aa = $stride_obj->resAA( RESIDUE_ID );Returns : scalar characterArgs : RESIDUE_ID
resPhi
Title : resPhiUsage : returns phi angle of specified residueFunction :Example : $phi = $stride_obj->resPhi( RESIDUE_ID );Returns : scalerArgs : RESIDUE_ID
resPsi
Title : resPsiUsage : returns psi angle of specified residueFunction :Example : $psi = $stride_obj->resPsi( RESIDUE_ID );Returns : scalarArgs : RESIDUE_ID
resSolvAcc
Title : resSolvAccUsage : returns stride calculated surface area of specified residueFunction :Example : $sa = $stride_obj->resSolvAcc( RESIDUE_ID );Returns : scalarArgs : RESIDUE_ID
resSurfArea
Title : resSurfAreaUsage : returns stride calculated surface area of specified residueFunction :Example : $sa = $stride_obj->resSurfArea( RESIDUE_ID );Returns : scalarArgs : RESIDUE_ID
resSecStr
Title : resSecStrUsage : gives one letter abbr. of stride determined secondarystructure of specified residueFunction :Example : $ss = $stride_obj->resSecStr( RESIDUE_ID );Returns : one of: 'H' => Alpha Helix'G' => 3-10 helix'I' => PI-helix'E' => Extended conformation'B' or 'b' => Isolated bridge'T' => Turn'C' => Coil' ' => None# NOTE: This range is slightly DIFFERENT from the# DSSP method of the same nameArgs : RESIDUE_ID
resSecStrSum
Title : resSecStrSumUsage : gives one letter summary of secondary structure ofspecified residue. More general than secStruc()Function :Example : $ss_sum = $stride_obj->resSecStrSum( RESIDUE_ID );Returns : one of: 'H' (helix), 'B' (beta), 'T' (turn), or 'C' (coil)Args : residue identifier(s) ( SEE INTRO NOTE )
resSecStrName
Title : resSecStrNameUsage : gives full name of the secondary structural elementclassification of the specified residueFunction :Example : $ss_name = $stride_obj->resSecStrName( RESIDUE_ID );Returns : scalar stringArgs : RESIDUE_ID
strideLocs
Title : strideLocsUsage : returns stride determined contiguous secondarystructural elements as specified on the LOC linesFunction :Example : $loc_pnt = $stride_obj->strideLocs();Returns : pointer to array of 5 element arrays.0 => stride name of structural element1 => first residue pdb key (including insertion code, if app.)2 => first residue chain id3 => last residue pdb key (including insertion code, if app.)4 => last residue chain idNOTE the differences between this range and the range of SecBounds()Args : none
secBounds
Title : secBoundsUsage : gets residue ids of boundary residues in eachcontiguous secondary structural element of specifiedchainFunction :Example : $ss_bound_pnt = $stride_obj->secBounds( 'A' );Returns : pointer to array of 3 element arrays. First two elementsare the PDB IDs of the start and end points, respectivelyand inclusively. The last element is the STRIDE secondarystructural element code (same range as resSecStr).Args : chain identifier ( one character ). If none, '-' is assumed
chains
Title : chainsUsage : gives array chain I.D.s (characters)Function :Example : @chains = $stride_obj->chains();Returns : array of charactersArgs : none
getSeq
Title : getSeqUsage : returns a Bio::PrimarySeq object which represents anapproximation at the sequence of the specified chain.Function : For most chain of most entries, the sequence returned bythis method will be very good. However, it it inherentlyunsafe to rely on STRIDE to extract sequence information abouta PDB entry. More reliable information can be obtained fromthe PDB entry itself. If a second option is given(and evaluates to true), the sequence generated willhave 'X' in spaces where the pdb residue numbers arediscontinuous. In some cases this results in abetter sequence object (when the discontinuity isdue to regions which were present, but could not beresolved). In other cases, it will result in a WORSEsequence object (when the discontinuity is due tohistorical sequence numbering and all sequence isactually resolved).Example : $pso = $dssp_obj->getSeq( 'A' );Returns : (pointer to) a PrimarySeq objectArgs : Chain identifier. If none given, '-' is assumed.
INTERNAL METHODS
_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( 3, 'A' );Returns : a scalarArgs : valid ordinal num / chain combination
_resAA
Title : _resAAUsage : returns 1 letter abbr. of the amino acid specified bythe argumentsFunction :Examples : $aa = $stride_obj->_resAA( 3, '-' );Returns : scalar characterArgs : ( ord. num, chain )
_pdbInsCo
Title : _pdbInsCoUsage : fetches the Insertion code for this residue.Function :Example : $pdb_ins_co = $self->_pdb_ins_co( 15, 'B' );Returns : a scalarArgs : ordinal number and chain
_toOrdChain
Title : _toOrdChainUsage : takes any set of residue identifying parameters andwrestles them into a two element array: the chain and the ordinalnumber of this residue. This two element array can then beefficiently used as keys in many of the above accessor methods('#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).Function :Example : my ( $ord, $chain ) = $self->_toOrdChain( @args );Returns : two element arrayArgs : valid set of residue identifier(s) ( SEE NOTE ABOVE )
_parse
Title : _parseUsage : as name suggests, parses stride output, creating objectFunction :Example : $self->_parse( $io );Returns :Args : valid Bio::Root::IO object
_parseTop
Title : _parseTopUsage : makes sure this looks like stride outputFunction :Example :Returns :Args :
_parseHead
Title : _parseHeadUsage : parsesFunction : HDR, CMP, SRC, and AUT linesExample :Returns :Args :
_parseSummary
Title : _parseSummaryUsage : parses LOC linesFunction :Example :Returns :Args :
_parseASG
Title : _parseASGUsage : parses ASG linesFunction :Example :Returns :Args :