NAME

GeometricalCalculations

VERSION

Version 0.01

SYNOPSIS

This module consists of subroutines that carry out geometrical calculations using the atomic coordinates obtained from a protein structure.

calc_geom

	subroutine  to calculate delta, theta, and rho angles for an smotif
	
    Input 1: $lvec - vector between the anchor points of the bracing secondary structures
	Input 2: $e1 - axis vector for 1st secondary structure
	Input 3: $e2 - axis vector for 2nd secondary structure

_getReadingFileHandle subroutine to get a reading file handle for a file.

input: file path name to the file 

exist_pdb_code_on_obsoletes check if a four-letters pdb code exist in PDB obsoletes folder it will return the full path name if a match is found. return undef if not file was found

        exist_pdb_code_on_obsoletes
	input  : pdb_code (4fab), chain_id
	return : full path name

exist_pdb_code_on_uncompressed

	check if a four-letters pdb code exist in uncompressed PDB folder
	it will return the full path name if a match is found.
	Return undef if not file was found
	
        input  : pdb_code (4fab), chain_id
	return : full path name

exist_pdb_code_on_alternate

	check if a four-letters pdb code exist in user defined alternate 
	PDB folder
        it will return the full path name if a match is found.
	Return undef if not file was found
	
        input  : pdb_code (4fab), chain_id
	return : full path name

get_full_path_name_for_pdb_code_alternate Return a fullpath name for a given four-letter PDB code It will look in USER_SPECIFIC PDB directory

die if not match found

get_full_path_name_for_pdb_code Return a fullpath name for a given four-letter PDB code It will look in obsoletes and uncompressed directories

die if not match found

get_from_file

	subroutine to read PDB file and obtain coordinates of backbone atoms.
	
        Input 1: @$data - smotif info (pdb ID, chain ID, start residue, ss1 length, ss2 length, loop length)
	Input/Output 2: @$landmarks - output array with smotif landmarks (0, loop start, ss2 start, ss2 end)
	Input 3: $string - backbone atom (CA, CB, C, N, or O)
	Input/Output 4: $seq - smotif sequence
   
       $VAR1 = [
          '/usr/local/databases/pdb//uncompressed/pdb2kl8.ent.gz',
          'A',
          2,
          7,
          17,
          3,
          0,
          'EH'
        ];

translate 
subroutine to convert from 3-letter codes to 1-letter codes

convert

subroutine to convert from 1-letter codes to 3-letter codes

COM

subroutine to find the centre of mass of a set of points, presented in 3 vectors

COM2

subroutine to find the centre of mass of a set of points, presented as a single vector

calculate_axis

subroutine to calculate the principal axis of a set of points 
(corresponds to the principal eigenvector for the moment matrix)

get_axis subroutine to find the axis vector of a secondary structure, using at least 4 residues for a helix or 2 for a strand

        Input 1: Type of secondary structure (H=Helix, E=strand)
	Input 2: Option to indicate whether the secondary structure is the first (1) or second (2) part of the smotif
	Input 3: Initial residue number of the secondary structure
	Input 4: Final residue number of the secondar structure
	Input 5-7: Vectors containing the coordinates of C-alpha atoms, N atoms, and C atoms of the smotif

calc_I

subroutine to calculate the matrix of moments from a set of backbone coordinates
Input 1: Secondary structure type
Input 2: Number of backbone atoms;
Input 3: 3-D vector containing the coordinates of C-alpha, N, and C-atoms

calc_evec

subroutine to calculate the eigenvector of a 3x3 matrix for a given eigenvalue
Input 1: Eigenvalue
Input 2: 3x3 matrix

subroutine to project a point onto an axis, given a point on the line
Input 1: Cooridnates of the point
Input 2: Vector representing the axis
Input 3: A point on the line

det

subroutine to find the determinant of a 3x3 matrix

find_eigs

subroutine to find the eigenvalues (ordered) of a 3x3 matrix

matmul

subroutine to multiply two matrices
Input 1: Matrix 1
Input 2: Matrix 2
Input 3: Number of rows in matrix 1
Input 4: Number of columns in matrix 1, also the number of rows in matrix 2
Input 5: Numer of columns in matrix 2

matvec

subroutine to multiply a vector by a matrix

Input 1: Matrix
Input 2: Vector
Input 3: Number of rows in the matrix
Input 4: Number of columns in the matrix, also the number of elements in the vector

vecvec

subroutine to find the outer product of two vectors of the same length
Input 1: Vector 1
Input 2: Vector 2
Input 3: Dimension of vector 1, also dimension of vector 2

find_roots

subroutine to find the roots of a cubic equation of the form x^3+ax^2+bx+cx=0

rotateaxis

subroutine to rotate a point (pt) around an axis (vec) by a given angle (ang)

rotate

subroutine to rotate a point (pt) such that one axis (u) aligns with another (v)

cross

subroutine to find the cross product of two 3-d vectors
Input 1: Concatenated vector whose first three elements represent vector 1 and whose last three represent vector 2

dot2

subroutine to find the dot product of two vectors
Input 1: Concatenated vector whose first half represents vector 1 and whose second half represents vector 2

unit

subroutine to return the unit vector corresponding to a given vector

norm

subroutine to return the 2-norm of a given vector

vecadd

subroutine to add two vectors
Input 1: Scalar factor to multiply the second vector
Input 2: Concatenated vector whose first half represents the first vector 
	 and whose second half represents the second vector

max

subroutine to find the maximum of an array

min

subroutine to find the minimum of an array

dbin

subroutine to Fbin a value from 0-40 using a given binsize

angbin

subroutine to bin a value using a given bin size

pearson

subroutine to find the Pearson correlation coefficient between two data sets

find_rmsd

subroutine to find the RMSD between two sets of points, 
using the method described by Theobald

Input 1: Number of points to consider
Input 2: Vector with the first set of coordinates
Input 3: Vector with the second set of coordinates

superpose

subroutine to superpose one set of points onto another

Input 1: Number of points to superpose
Input 2: Vector of points to be used as the superposition template
Input 3: Vector of points to be aligned and superposed
Input 4: Vector of extra points to be superposed (not aligned, since they are "carried along")

dihedral

subroutine to calculate the dihedral angle generated by four atoms

findcb

subroutine to calculate the coordinates of a beta-carbon, given statistically observed tetrahedral geometry######

Input 1: C-alpha coordinates
Input 2: C coordinates
Input 3: N coordinates

findo

pointsonsphere

subroutine to distribute points evenly on a sphere
Input 1: Number of points to distribute
Input 2: Radius of sphere

norm2

subroutine to find the square of the 2-norm of a vector

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 GeometricalCalculations

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.