Protein Class
Version 0.05
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 $foo = Protein->new(); ...
Initialize a new Protein object
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
Returns the number of residues in the protein test->num_res()
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
Returns an array of types (HH, HE, EH, EE) of all the smotifs in the structure test->types()
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
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
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)
Returns the number of smotifs in the protein test->num_motifs()
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
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
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
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)
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)
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
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
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
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)
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
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
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
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
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
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
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
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
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)
Returns the RMSD between the secondary structure backbone atoms (C, N, CA) of test and test2 structures, rmsd=test->rmsd_ss_order(test2,@order)
Calculates the radius of gyration of a structure using the backbone CA, C, and N atoms rad=test->radius_of_gyration()
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
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)
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.
Calculate the membrane-based Lazaridis implicit solvation potential test->lazaridis_memb()
Calculate the hybrid membrane/globular Lazaridis implicit solvation potential
This routine is OBSOLETE Calculate the Lazaridis implicit solvation potential test->lazaridis()
Calculate the globular Lazaridis implicit solvation potential test->lazaridis_new()
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()
Calculate the long-range knowledge-based H-bond potential based on Kortemme, Mezerov, and Baker paper test->calc_long_range_h_bonds()
Calculate the distance and angle parameters for H-bond potential calculation test->calc_d_theta_psi()
Set up the knowledge-based H-bond potential values test->hbond_scores()
Load Rykunov's statistical potential values test->stat_table()
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 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.
Calculate coordinates, given a set of phi/psi angles Inputs: Array containing phi and psi angles
Fiserlab Members , <andras at fiserlab.org>
<andras at fiserlab.org>
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=.. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
bug-. at rt.cpan.org
You can find documentation for this module with the perldoc command.
perldoc Protein
RT: CPAN's request tracker (report bugs here)
http://rt.cpan.org/NoAuth/Bugs.html?Dist=.
AnnoCPAN: Annotated CPAN documentation
http://annocpan.org/dist/.
CPAN Ratings
http://cpanratings.perl.org/d/.
Search CPAN
http://search.cpan.org/dist/./
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.
To install SmotifCS, copy and paste the appropriate command in to your terminal.
cpanm
cpanm SmotifCS
CPAN shell
perl -MCPAN -e shell install SmotifCS
For more information on module installation, please visit the detailed CPAN module installation guide.