Menu

SVN archive Commit Log


Commit Date  
[r2685] by bugman

Added the rotation matrix as an attribute of the diffusion tensor data structure.

The calculation of the diffusion tensor data structure 'self.relax.data.diff[run].tensor' has been
simplified. Rather than replicating the calculation of the diagonalised diffusion tensor, it uses
the 'tensor_diag' data structure. The 'rotation' data structure is also used.

2006-10-29 03:01:57 Tree
[r2684] by bugman

Created the geometric representation of the diffusion tensor in the tensor PDB file.

The lengths of the uniformly distributed vectors have been extended and scaled to the shape of the
geometric object. Each atom has been connected to the previous atom in its radial array (generating
longitudinal lines) and the atoms of each radial array have been joined to the equivalent atoms of
the previous array (generating latitudinal lines). To zip up a gap in the geometric object where
the latitudinal lines are not continuous ellipses, the atoms of the last radial array have been
joined to the first radial array.

2006-10-29 03:00:54 Tree
[r2683] by bugman

Creation of a uniform distribution of unit vectors on a sphere using uniform spherical angles.

The function 'self.uniform_vect_dist_spherical_angles()' has been added to the file
'generic_fns/pdb.py'. This function has the explicit purpose of generating a uniform distribution
of unit vectors on a sphere. It does this by using a linear distribution of values of the azimuthal
angle theta in combination with an arc-cos distribution of values of the polar angle. Each is
incremented one by one and unit vectors from the spherical angles are calculated. This creates both
radial arrays corresponding to the longitude and horizontal latitudinal arrays of vectors.

For the tensor PDB file, this currently generates a number of non-bonded H atoms distributed 1
Angstrom form the origin of the PDB frame. This will soon be transformed into the diffusion frame,
the unit vectors scaled to the appropriate diffusion rate, and the atoms joined.

2006-10-29 02:57:04 Tree
[r2682] by bugman

The diffusion tensor data structure now returns the matrices 'tensor' and 'tensor_diag'.

For spherical, spheroidal, and ellipsoidal diffusion, the diffusion tensor data structure attributes
'tensor' and 'tensor_diag' now exist. These return the diffusion tensor in the form of a matrix.
The object 'tensor_diag' returns the diffusion tensor defined within the diffusion frame. The
object 'tensor' return the diffusion tensor defined within the structural frame.

2006-10-29 02:53:37 Tree
[r2681] by bugman

A overhaul of the handling of the tensor PDB atomic data and how atoms are added and connected.

A new data structure called 'self.atomic_data' has been created to store all the atomic data. The
data structure is a dictionary of arrays. The key is a string corresponding to the 'atom_id'. The
elements of the array are:
0: Atom number.
1: Element type.
2: The x coordinate of the atom.
3: The y coordinate of the atom.
4: The z coordinate of the atom.
5+: The bonded atom numbers.

Two new functions have been added to maintain the 'self.atomic_data' structure. The first is
'self.atom_add()' which creates a key-value pair within the data structure for the given atom adding
the atom number, element type, and coordinates of the atom.

The second function is 'self.atom_connect()'. Two arguments are expected, the 'atom_id' and
'bonded_id' strings. The atom number corresponding to 'bonded_id' is added to the 'atom_id' array
and vice versa.

The centre of mass atom is now added using the 'self.atom_add()' function. The atom corresponding
to the unique axis of the spheroid ('Dpar_vect') is also added using this function. These two atoms
are connected using 'self.atom_connect()'.

The 'self.write_pdb_file()' function has been modified accordingly.

2006-10-29 02:51:46 Tree
[r2680] by bugman

The ability for different atoms of the PDB tensor representation has been added.

The hetatm array elements are now 2 element arrays consisting of the atom position and the element
type. An algorithm has been added to generate the chemical formula for the FORMUL PDB record.

2006-10-29 02:47:24 Tree
[r2679] by bugman

The length of the vector representing the unique axis of the spheroid is now proportional to Dpar.

To calculate the new vector, the Dpar unit vector is multiplied by the eigenvalue Dpar. It is also
multiplied by the scaling factor 'scale'. This scaling factor comes from the prompt interface user
function 'pdb.create_tensor_pdb()' which defaults to 1.8e-6. The result is that the correlation
times translate to:

3 ns -> 100 Angstrom
10 ns -> 30 Angstrom
30 ns -> 10 Angstrom

The docstring of the 'pdb.create_tensor_pdb()' user function has been expanded to include a
description of the scaling factor and how the size of the tensor geometric object is larger for
smaller objects.

2006-10-29 02:42:18 Tree
[r2678] by bugman

The unique axis of the spheroid is now represented by the Dpar unit vector in the tensor PDB.

As the Dpar unit vector has been added to the centre of mass to create a HETATM record, the distance
between the atom representing the centre of mass and the unique axis is 1 Angstrom.

2006-10-29 02:34:21 Tree
[r2677] by bugman

The diffusion tensor data structure now returns unit vectors parallel to the tensor axes.

The 'self.__getattr__()' function has been expanded. The docstring now describes all the equations
used in the calculation of the parameters Diso, Dper, Dpar, Dratio, Dx, Dy, and Dz. It also
describes how the unit vectors parallel to Dpar, Dx, Dy, and Dz are related to the spherical or
Euler angles.

Dper, Dpar, and Dratio are now only calculated if the diffusion tensor is spheroidal and Dx, Dy, and
Dz are only calculated if the diffusion is ellipsoidal.

The Dpar, Dx, Dy, and Dz unit vectors are calculated and a Numeric array is returned.

2006-10-29 02:29:50 Tree
[r2676] by bugman

Fix for bug #7540 (https://gna.org/bugs/index.php?7540).

This bug was reported by Alex Hansen (viochemist at gmail dot com). The problem was that the
function 'self.relax.generic.pdb.load()' had been renamed to 'self.relax.generic.pdb.read()'. The
correct function is now being called and the heteronucleus and proton name arguments, as well as the
'calc_vectors' argument have been removed.

2006-10-27 08:50:44 Tree
Older >
Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.