This directory contains several Python modules that are useful in computational chemistry: PDB.py (requires TextFile.py, Vector.py and umath.py) High-level I/O with PDB files. Allows you to deal with PDB files as if they were lists of residues and atoms. Example: for residue in PDBConfiguration('protein.pdb'): for atom in residue: print atom.name, atom.position TextFile.py Unified access to compressed and uncompressed files, plus access to text files as a sequence of lines. ONLY FOR UNIX SYSTEMS! Derivatives.py (requires Vector.py and umath.py) Automatic derivatives. Calculates analytical derivatives numerically, given only the original function, to any order and for any number of variables. Example: x = DerivVar(1.1,0) y = DerivVar(0.44, 1) f = exp(x**2+y**2) print f prints: (4.06982499598, [8.95361499116, 3.58144599646]) FirstDerivatives.py (requires Vector.py and umath.py) Automatic first-order derivatives. This module is a subset of Derivatives.py and compatible as far as possible. The restriction to first-order derivatives makes it faster. Potential.py (requires Derivatives.py, FirstDerivatives.py, Vector.py and umath.py) Automatic gradient and force constant calculation for potential functions (or any function). Example: def harmonic(k, r1, r2): dr = r1-r2 return k*dr*dr harmonic_g = PotentialWithGradientsAndForceConstants(harmonic) energy, gradients, force_constants = \ harmonic_g(100., Vector(0,3,1), Vector(1,2,0)) print energy print gradients print force_constants prints: 300.0 [Vector(-200.0,200.0,200.0), Vector(200.0,-200.0,-200.0)] [[200.0, 0.0, 0.0, -200.0, 0.0, 0.0], [0.0, 200.0, 0.0, 0.0, -200.0, 0.0], [0.0, 0.0, 200.0, 0.0, 0.0, -200.0], [-200.0, 0.0, 0.0, 200.0, 0.0, 0.0], [0.0, -200.0, 0.0, 0.0, 200.0, 0.0], [0.0, 0.0, -200.0, 0.0, 0.0, 200.0]] Vector.py (requires umath.py) 3d-vectors, used by the three other modules. umath.py Simplified substitute for the module "umath" from the numerics package. Use only if you don't have the numerics package. This module is used by all the other modules in this directory. ========================================================= Where to get "python": Here's the list of FTP sites: U.S. Sites ftp.python.org in /pub/python/ (Python's home site) gatekeeper.dec.com in /pub/plan/python/ ftp.uu.net in /languages/python/> ftp.wustl.edu in /graphics/graphics/sgi-stuff/python/ (often busy) ftp.sterling.com in /programming/languages/python/ uiarchive.cso.uiuc.edu in /pub/lang/python/ European sites ftp.cwi.nl in /pub/python/ ftp.funet.fi in /pub/languages/python/ ftp.sunet.se in /pub/lang/python/ unix.hensa.ac.uk in /mirrors/uunet/languages/python/ ftp.ibp.fr in /pub/python/ ftp.switch.ch in /software/sources/python/ ftp.informatik.tu-muenchen.de in /pub/comp/programming/languages/python/ Australian sites ftp.dstc.edu.au in /pub/python/ There is also a Web page with all information that anyone could possibly want about Python at http://www.python.org. And the Usenet group comp.lang.python for further questions. The numerics package mentioned above is currently in alpha test. Anyone interested in contributing to development and testing should join the Python Matrix SIG by sending a message containing the line "subscribe matrix-sig " to Majordomo@python.org. The numerics package provides complex numbers and fast arrays, plus a number of other useful features for numerical work.