This module combines tools that are commonly used to analyze proteins and nucleic acids from a pdb file stuctures. The main benefits of using the module are its ability to parse and print out a pdb structure with minimum effort. However in addition to that it is possible to do structural alignments, RMSD calculations, atom editons, center of mass calculations, molecule editions and so forth. Both Atom objects and Molecule objects are defined within this module.

Read the contents of file.pdb into a molecule. If a second numeric argument is
specified it will read model (i+1) from the file (counting from zero).

$object->print

$object->print("file.pdb")

Write the molecule to STDOUT when no argument is provided or to a file when an
argument is provided.

$object->size

Return the number of atoms contained in the molecule.

$object->atom(5)

Return the atom located at position five (starting from zero).

$object->push(atom)

Push atom object at the end of the molecule.

$object->proten

Return a molecule that only contains atoms with type ATOM

$object->hetatoms

Retruns a molecule that only contains HETATM records

$object->alpha

Returns a molecule with the alpha carbons

$object->backbone

Returns a molecule with the backbone of a protein

$object->sidechains

Returns a molecule with the sidechains of a protein

$object->list_atoms('logical expression')

Creates a molecule with a custom atom selection. The logical expression must use
Perl's logical operators and the properties of atoms. For example to select all
atoms from residue 50 onwards and only belonging to ALA residues on would use
the logical expression: 'residue_number >= 50 && residue_name eq "ALA"'

$object->center

Return an atom object that respresents the centroid for the given molecule.

$object->cm

Return an atom object that sits at the center of mass for the given molecule.

$object->translate(x,y,z)

Translate the molecule as a rigid object by x,y,z.

$object->rotate(u11,u12,u13,u21,u22,u23,u31,u32,u33)

Do a rigid rotation of the molecule using matrix u.

$object->rotate_translate(@matrix,@vector)

Apply a rotation matrix followed by a translation. To facilitate structural
supperpositions.

$object->superpose($reference)

Find the transformation that overlaps $object on to $reference. The resulting
transformation is in the format @transformation= (@matrix,@vector). Molecules
must have the same number of atoms.

$object->rmsd($reference)

Compute the RMSD between two molecules. The molecules must have the same number
of atoms

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.12.3 or, at your option, any later version of Perl 5 you may have available.