|
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.
|