Menu

SVN archive Commit Log


Commit Date  
[r2797] by bugman

Ported r2790 and r2791 from the 1.3 line.

The command used was:
svn merge -r2789:2791 svn+ssh://bugman@.../svn/relax/1.3

These changes enable relax's C modules to be compiled using gcc on Mac OS X.

2006-11-10 06:30:21 Tree
[r2796] by bugman

Complete redesign of 'self.relax.data.diff': auto-calculated objects updated when params are set.

The previous commits redesigned the 'self.relax.data.diff' code so that when a diffusion tensor
object (e.g. Diso, tensor, rotation, etc.) which is not one of the standard internal parameters is
accessed, they would be calculated on the fly. Therefore if you asked for
'self.relax.data.diff[run].tensor', it would first be calculated and then returned. Most of these
automatically created objects were setup when the program was initialised, although a few were
returned by the 'self.__getattr__()' function.

However this approach is incredibly slow. This is especially apparent when each vector of the
spherical vector distribution for creating the geometric representation of the Brownian rotational
diffusion tensor is rotated and then extended to the correct length. The chain of auto-object
creation by other auto-objects dependant on them together with the large number of accesses to
'self.relax.data.diff' caused the implementation to take minutes to create the vector distribution.

Therefore I have completely redesigned the code. Rather than being calculated on the fly, the
objects are created when parameters are set. This uses the 'self.__setattr__()' function. All the
auto-object functions of the file 'data/diff_tensor_auto_objects.py' have been shifted back into the
diffusion tensor class DiffTensorElement. They have been renamed to 'self._calc_'+obj where obj is
the calculated object name. The underscored first character is used by the 'Element' base class
method 'self.__repr__()' to hide the object when printing the contents of 'self.relax.data.diff'.

The 'self.__setattr__()' function consists of two parts. Firstly the 'self.relax.data.diff' object
attribute is set and then the data structures are updated. Before the attribute is set, it is
checked to see if it belongs to a list of modifiable attributes. If it doesn't, a RelaxError is
thrown saying that the object is not modifiable. If it is modifiable, it is set using the
statement:
self.__dict__[name] = value

The objects which are currently updated include:
Diso (the isotropic diffusion rate),
Dpar (the diffusion rate parallel to the unique axis, spheroid only),
Dper (the diffusion rate perpendicular to the unique axis, spheroid only),
Dx (the diffusion rate parallel to the x-axis, ellipsoid only),
Dy (the diffusion rate parallel to the y-axis, ellipsoid only),
Dz (the diffusion rate parallel to the z-axis, ellipsoid only),
Dratio (the ratio of Dpar and Dper, spheroid only),
Dpar_unit (the unit vector parallel to the unique axis, spheroid only),
Dx_unit (the unit vector parallel to the x-axis, ellipsoid only),
Dy_unit (the unit vector parallel to the y-axis, ellipsoid only),
Dz_unit (the unit vector parallel to the z-axis, ellipsoid only),
tensor_diag (the diagonalised diffusion tensor),
rotation (the rotation matrix),
tensor (the diffusion tensor in the PDB frame).

These are all updated using the function 'self._update_object()'. Dependant on the category (val,
err, sim) of the object being set by 'self.__setattr__()', this function updates solely the
value, error, or Monte Carlo simulation objects affected by it. For efficiency it returns without
doing anything if the object being set is not within the 'update_if_set' list. This is a list of
parameter names that, if modified, the 'target' object would then change. The
'self._update_object()' function automatically determines which 'self._calc_xxx()' function to use.
Then to update the 'target', the objects corresponding to the names in the 'depends' list are sent
to the 'self._calc_xxx()' function which then returns the calculated object. If the object being
set belongs to the Monte Carlo simulation category, then the 'self._update_object()' will create an
array by looping over each simulation calling 'self._calc_xxx()' for each sim. The updated object
is then set using the statement:

self.__dict__[target] = value

In the case of MC simulations, 'value' is replaced with 'sim_values'.

2006-11-10 05:39:55 Tree
[r2795] by bugman

More synthetic NMR relaxation data for the model-free system tests of the test suite.

The data was back calculated from the model-free parameters:
S2f = 0.952,
S2s = 0.582,
ts = 32 ns.

The synthetic relaxation data is noise free and consists of the R1, R2, and NOE at both 500 and
600 MHz.

2006-11-10 04:38:05 Tree
[r2794] by varioustoxins

added #! declarations for testing under linux etc

2006-11-09 16:27:17 Tree
[r2793] by macraild

Fix for bug #7675. Removes unneccessary lookup of pdb.load_seq

https://gna.org/bugs/index.php?7675

2006-11-09 11:27:13 Tree
[r2792] by bugman

Modified 'self.vectors()' to place the proton and heteronucleus name in 'self.relax.data.res[run]'.

Previously the names were being placed into 'self.relax.data.pdb[run]' which is problematic for
task #3838 (https://gna.org/task/?3838). This is also preventing the resolution of bug #7544
(https://gna.org/bugs/?7544).

2006-11-09 09:12:19 Tree
[r2791] by bugman

An attempt to change the shared library suffix from '.dylib' to '.so' on Mac OS X.

This problem was reported by Douglas Kojetin <douglas dot kojetin at gmail dot com> at
https://mail.gna.org/public/relax-users/2006-11/msg00002.html (Message-id:
<AD17DD2D-A37B-44D4-B1B8-1A2349EC7EC5@...>) and as bug #7670 (https://gna.org/bugs/?7670).

To use a different suffix, I have explicitly set the 'SHLIBSUFFIX' environmental variable to '.so'.
This should overwrite the SCons default of '.dylib'.

2006-11-09 08:17:36 Tree
[r2790] by bugman

An attempt at removing the '-dynamiclib' gcc option when compiling the C modules on Mac OS X.

This problem was reported by Douglas Kojetin <douglas dot kojetin at gmail dot com> at
https://mail.gna.org/public/relax-users/2006-11/msg00002.html (Message-id:
<AD17DD2D-A37B-44D4-B1B8-1A2349EC7EC5@...>) and as bug #7670 (https://gna.org/bugs/?7670).

To remove the '-dynamiclib' option, I replicated what Doug had done in his post at
https://mail.gna.org/public/relax-devel/2006-11/msg00098.html (Message-id:
<0E180DBB-896A-45F6-B19D-D6A02FD2BA4A@...>). Rather than changing the line:

env['SHLINKFLAGS'] = SCons.Util.CLVar('$LINKFLAGS -dynamiclib')

in the SCons sources, I have replicated Doug's modification within the relax 'sconstruct' script.
This change needs to be tested.

2006-11-09 08:11:43 Tree
[r2789] by bugman

Deletion of the 'macraild' branch.

For details see https://mail.gna.org/public/relax-devel/2006-11/msg00090.html (Message-id:
<1162999384.3525.259.camel@...>).

2006-11-09 07:17:16 Tree
[r2788] by bugman

Deletion of the 'auto_select_merged' branch.

For details see https://mail.gna.org/public/relax-devel/2006-11/msg00090.html (Message-id:
<1162999384.3525.259.camel@...>).

2006-11-09 07:16:49 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.