The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

GeometricalCalculations

VERSION

SYNOPSIS

Quick summary of what the module does.

Perhaps a little code snippet.

    use GeometricalCalculations;

    my $foo = GeometricalCalculations->new();
    ...

EXPORT

A list of functions that can be exported. You can delete this section if you don't export anything, such as for a purely object-oriented module.

SUBROUTINES/METHODS

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

check_file

        subroutine to check if pdb file exists in the PDB flat-file database

_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)
        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)
        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)
        return : full path name

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'
        ];

translate2

        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

projectpoint

        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

AUTHOR

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=.. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

    perldoc GeometricalCalculations

You can also look for information at:

ACKNOWLEDGEMENTS

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.