NAME
Protein Class
VERSION
Version 0.01
SYNOPSIS
This package contains the 'Protein' class used to represent a protein structure composed of smotifs and the set of subroutines available for constructing, modifying, and evaluating the given protein structure.
use Protein;
my $test = Protein->new();
new
Initialize a new Protein object
CLASS METHODS
Methods for handling a protein
last_pt
Returns or changes the last coordinate (C-terminus) of the protein
test->last_pt($atom,@pt)
INPUTS:
$atom = atom type ('CA','C','N','O','CB','H');
@pt (optional) = new coordinates to be assigned to the last atom
num_res
Returns the number of residues in the protein
test->num_res()
change_pt
Changes the coordinates of an existing atom in the protein
test->change_pt($atom,$index,@pt)
INPUTS:
$atom = atom type ('CA','C','N','O','CB','H');
$index = residue number
@pt new coordinates to be assigned to the atom
get_coords
Returns the coordinates (as an Nx3 array of arrays) of atoms in consecutive residues
test->get_coords($atom,$first,$last)
INPUTS:
$atom = atom type ('CA','C','N','O','CB','H');
$first = first residue index
$last = last residue index
types
Returns an array of types (HH, HE, EH, EE) of all the smotifs in the structure
test->types()
one_landmark
Returns or assigns an array of the landmarks (start, loop start, ss2 start, end) for a given smotif
test->one_landmark($index,@newlm)
INPUTS:
$index = smotif index
@newlm (optional) = array of landmarks to be assigned to the smotif
get_seq
Returns or assigns a portion of the protein sequence as a string
test->get_seq($start,$len,$seq)
INPUTS:
$start = start position of the sequence portion
$len = length of the sequence portion
$seq (optional) = new sequence of amino acids to assign to the given portion of the sequence
print_to_file
Prints the contents of the protein object to a PDB-formatted file
test->print_to_file($filename)
INPUTS:
$filename = name of the output file (will be overwritten)
num_motifs
Returns the number of smotifs in the protein
test->num_motifs()
add_motif
Appends an smotif to the end of the protein structure
test->add_motif(@proptable)
INPUTS:
@proptable = array of properties, can be in one of two formats -
1) a single entry containing the smotif nid number
2) an array with the PDB code, chain, smotif start residue, loop length, ss1 length, ss2 length, type
add_motif_from_file
Adds an smotif to an empty structure
test->add_motif_from_file(@proptable)
DO NOT CALL THIS FUNCTION DIRECTLY! Use test->add_motif(@proptable) instead
INPUTS:
@proptable = array of properties, can be in one of two formats -
1) a single entry containing the smotif nid number
2) an array with the PDB code, chain, smotif start residue, loop length, ss1 length, ss2 length, type
add_partial_motif Adds an smotif to an existing structure by aligning its first secondary structure to the final secondary structure of the protein. test->add_partial_motif(@proptable) DO NOT CALL THIS FUNCTION DIRECTLY! Use test->add_motif(@proptable) instead INPUTS: @proptable = array of properties, can be in one of two formats - 1) a single entry containing the smotif nid number 2) an array with the PDB code, chain, smotif start residue, loop length, ss1 length, ss2 length, type
axis
Calculates or returns the axis corresponding to a given motif ss
test->axis(mot, ss, option)
Inputs:
mot = smotif number
ss = secondary structure in the motif (either 1 or 2)
option = recalculate and return (1) or just return (0)
cal_angles
Calculates or returns the geometric parameters of an smotif (d, delta, theta, rho)
test->calc_angles(mot, option)
Inputs:
mot = smotif number
option = recalculate and return (1) or just return (0)
rotate_theta
Changes the theta (packing) angle of an smotif in a structure - all the torsional 'stress' is placed on the flanking residue
test->rotate_theta(mot, ang)
Inputs:
mot = smotif number
ang = degrees by which to change the theta angle
rotate_rho
Changes the rho (meridian) angle of an smotif in a structure - all the torsional 'stress' is placed on the flanking residue
test->rotate_rho(mot, ang)
Inputs:
mot = smotif number
ang = degrees by which to change the rho angle
rotate_delta
Changes the delta (hoist) angle of an smotif in a structure - all the torsional 'stress' is placed on the flanking residue
test->rotate_delta(mot, ang)
Inputs:
mot = smotif number
ang = degrees by which to change the delta angle
lvec
Calculates or returns the l-vector (vector joining the flanking loop residues)
test->lvec(mot, option)
Inputs:
mot = smotif number
option = recalculate and return (1) or just return (0)
shorten
Shortens a secondary structure by removing a specified number of residues
test->shorten(mot, num)
Inputs:
mot = secondary structure number (use -1 for the last secondary structure)
num = number of residues to shorten by
elongate
Elongates a secondary structure by a specified number of residues. The elongation is performed
by sequentially taking a portion of the C-terminal end of the secondary structure, shifting it
by one residue, and aligning it to the unshifted end, thus generating the coordinates of one
new residue at a time.
test->elongate(mot, num)
Inputs:
mot = secondary structure number (use -1 for the final secondary structure)
num = number of residues to extend the secondary strucure by
check_ster_viols
Checks for steric distance violations in a structure, given an inter-atomic distance and an atom type
@violations=test->check_ster_viols(atom, sterdist)
Inputs:
atom = backbone atom type, can be 'all', 'ca', 'c', 'n', 'cb', 'o'
sterdist = distance (Angstrom) under which a violation is recorded
OUTPUTS:
If a specific atom type is specified, output array contains (residue numbers that clash, minimum distance),
or (100,100) if no clashes
If atom type is specified as 'all', output array contains (residue numbers that clash, atom types that
clash, minimum distance), or (100,100) if no clashes
Note: In all cases, only the 'worst offending' set of atoms (i.e. the pair with smallest inter-atomic distance) is returned
statpot
Calculates the total statistical potential scoring function value using Rykunov's potential
test->statpot()
Note: test->stat_table() has to be called before running this method
rmsd
Returns the RMSD between the backbone atoms (CA, C, N, and O) of the structures in test and test2
rmsd=test->rmsd(test2)
NOTE: test2 must have at least as many residues as $test1
rmsd_loops
Returns the RMSD between the backbone atoms (CA, C, N, and O) in all the loop regions of the test1
and test2 structures
rmsd=test->rmsd_loops(test2)
NOTE: test2 must have at least as many loop residues as test1
rmsd_loops_flanking_ss
Returns the RMSD between the backbone atoms (CA, C, N, and O) in all the loop regions and
flanking 3 ss residues of the test1 anf test2 structures
rmsd=test->rmsd_loops_flanking_ss(test2)
NOTE: test2 must have at least as many loop residues as test1
rmsd_ss
Returns the RMSD between the backbone atoms (CA, C, N, and O) in all the secondary
structure regions of the test1 and test2 structures.
rmsd=test->rmsd_ss(test2,@order)
The order of secondary structures in test structure are given by the optional array @order.
An example of @order would be (0 1 2 3 5 4), where the third secondary structure is oriented
in the reverse direction in test as opposed to test2. If @order is omitted, the routine
assumes the same order for both structures.
NOTE: test2 must have the same ordered initial and intermediate secondary structure
lengths as test1, or else the function returns -1
rmsd_anchor_order
Returns the RMSD between the anchor points (a-carbons of the first and last residues
of all the secondary structures) of test and test2 structures, where the order of points
in test structure are given by the array @order.
An example of @order would be (0 1 2 3 5 4), where the third secondary structure is
oriented in the reverse direction in test as opposed to test2
rmsd=test->rmsd_anchor_order(test2,@order)
rmsd_ss_order
Returns the RMSD between the secondary structure backbone atoms (C, N, CA) of test and test2 structures,
rmsd=test->rmsd_ss_order(test2,@order)
radius_of_gyration
Calculates the radius of gyration of a structure using the backbone CA, C, and N atoms
rad=test->radius_of_gyration()
superpose
Optimally superposes structure test onto structure test2, using the backbone CA, C, and N atoms,
and returns the rmsd of the best superposition.
rmsd=test->superpose(test2)
NOTE: function fails if test2 has fewer residues than test1
superpose_anchors
Optimally superposes the anchor points (c-alpha coordinates for the start and end residues of
all secondary structures) of test2 onto the anchor points of test, where the order of points
in test structure are given by the array @order.
An example of @order would be (0 1 2 3 5 4), where the third secondary structure is oriented
in the reverse direction in test as opposed to test2.
rms=test->superpose_anchors(test2)
decompose_landmarks
Decomposes the structure into sets of residue numbers representing the start and end of each
secondary structure (indexed from 0 to num_motifs*2-1), and then generates all possible
(original and re-wired) smotif start and end points.
test->decompose_landmarks(outfilename)
The output file, written to outfilename, contains lines with the following information:
start anchor value of first ss, end anchor value of first ss, start anchor value of second ss,
end anchor value of second ss, smotif type, ss1 length, ss2 length.
lazaridis_memb
Calculate the membrane-based Lazaridis implicit solvation potential
test->lazaridis_memb()
lazaridis_hybrid
Calculate the hybrid membrane/globular Lazaridis implicit solvation potential
lazaridis
This routine is OBSOLETE
Calculate the Lazaridis implicit solvation potential
test->lazaridis()
lazaridis_new
Calculate the globular Lazaridis implicit solvation potential
test->lazaridis_new()
add_amide_hydrogens
Generate amide hydrogens along the backbone, to be used to determine long-range hydrogen bonds
Ideal amide hydrogen bond lies along the bisector of the C->N and N->Ca bonds
test->add_amide_hydrogens()
calc_long_range_h_bonds
Calculate the long-range knowledge-based H-bond potential based on Kortemme, Mezerov, and Baker paper
test->calc_long_range_h_bonds()
calc_d_theta_psi
Calculate the distance and angle parameters for H-bond potential calculation
test->calc_d_theta_psi()
hbond_scores
Set up the knowledge-based H-bond potential values
test->hbond_scores()
stat_table
Load Rykunov's statistical potential values
test->stat_table()
torsion
Calculate phi/psi/omega angles for every residue within a range
$tor=torsion($test,$start,$end);
Inputs:
Start and end residues of protein in "test" for torsion calculation
change_torsion
Change the phi or psi angle of a single residue
Inputs:
Residue number, phi or psi - which angle to rotate, and the amount of rotation to be carried out.
coords_from_torsion
Calculate coordinates, given a set of phi/psi angles
Inputs:
Array containing phi and psi angles
AUTHORS
Fiserlab Members , <andras at fiserlab.org>
BUGS
Please report any bugs or feature requests to bug-. at rt.cpan.org
, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=..
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Protein
RT: CPAN's request tracker (report bugs here)
AnnoCPAN: Annotated CPAN documentation
CPAN Ratings
Search CPAN
LICENSE AND COPYRIGHT
Copyright 2015 Fiserlab Members .
This program is free software; you can redistribute it and/or modify it under the terms of the the Artistic License (2.0). You may obtain a copy of the full license at:
http://www.perlfoundation.org/artistic_license_2_0
Any use, modification, and distribution of the Standard or Modified Versions is governed by this Artistic License. By using, modifying or distributing the Package, you accept this license. Do not use, modify, or distribute the Package, if you do not accept this license.
If your Modified Version has been derived from a Modified Version made by someone other than you, you are nevertheless required to ensure that your Modified Version complies with the requirements of this license.
This license does not grant you the right to use any trademark, service mark, tradename, or logo of the Copyright Holder.
This license includes the non-exclusive, worldwide, free-of-charge patent license to make, have made, use, offer to sell, sell, import and otherwise transfer the Package with respect to any patent claims licensable by the Copyright Holder that are necessarily infringed by the Package. If you institute patent litigation (including a cross-claim or counterclaim) against any party alleging that the Package constitutes direct or contributory patent infringement, then this Artistic License to you shall terminate on the date that such litigation is filed.
Disclaimer of Warranty: THE PACKAGE IS PROVIDED BY THE COPYRIGHT HOLDER AND CONTRIBUTORS "AS IS' AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES. THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRINGEMENT ARE DISCLAIMED TO THE EXTENT PERMITTED BY YOUR LOCAL LAW. UNLESS REQUIRED BY LAW, NO COPYRIGHT HOLDER OR CONTRIBUTOR WILL BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL DAMAGES ARISING IN ANY WAY OUT OF THE USE OF THE PACKAGE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.