mailRe: Model-Free Results Output


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by Tyler Reddy on November 05, 2008 - 21:31:
I thought we already worked this one out?


Quoting Edward d'Auvergne <edward@xxxxxxxxxxxxx>:

Maybe this is again an edge case of an insanely difficult optimisation
surface caused by underestimated errors.  I would recommend creating a
bug report for this.  And if you could create a mini randomised data
set which triggers this error (that could be added to the test suite
as well), that would really help with the debugging the minfx code at
the moment.

Cheers,

Edward


On Fri, Oct 24, 2008 at 2:12 PM, Tyler Reddy <TREDDY@xxxxxx> wrote:
Thanks Seb.

It looks like my 'prolate' iterations in the 2nd round are maxing out and
this
is causing an error output (even though the first round seemed okay):


k: 311     xk: array([  2.60992216e-11,   5.00000957e+02])
  fk: 2254.7254621187344
Entering sub-algorithm.

      Newton minimisation
      ~~~~~~~~~~~~~~~~~~~
      Line search:  Backtracking line search.
      Hessian modification:  The Gill, Murray, and Wright modified Cholesky
algorithm.

      k: 0       xk: array([  2.60992216e-11,   5.00000957e+02])
        fk: 2254.7254621187344
      k: 100     xk: array([  2.60992216e-11,   5.00000958e+02])
        fk: 2254.7254579164155
      k: 200     xk: array([  2.60992216e-11,   5.00000958e+02])
        fk: 2254.7254537140993
      k: 300     xk: array([  2.60992216e-11,   5.00000959e+02])
        fk: 2254.7254495117813
      k: 400     xk: array([  2.60992216e-11,   5.00000959e+02])
        fk: 2254.7254453094624

      Parameter values: array([  2.60992216e-11,   5.00000960e+02])
      Function value:   2254.7254411071449
      Iterations:       500
      Function calls:   1001
      Gradient calls:   501
      Hessian calls:    500
      Warning:          Maximum number of iterations reached


k: 312     xk: array([  2.60992216e-11,   5.00000960e+02])
  fk: 2254.7254411071449
Entering sub-algorithm.

      Newton minimisation
      ~~~~~~~~~~~~~~~~~~~
      Line search:  Backtracking line search.
      Hessian modification:  The Gill, Murray, and Wright modified Cholesky
algorithm.

      k: 0       xk: array([  2.60992216e-11,   5.00000960e+02])
        fk: 2254.7254411071449
      k: 100     xk: array([  2.60992216e-11,   5.00000961e+02])
        fk: 2254.7254369048283
      k: 200     xk: array([  2.60992216e-11,   5.00000961e+02])
        fk: 2254.7254327025107
      k: 300     xk: array([  2.60992216e-11,   5.00000962e+02])
        fk: 2254.7254285001914
      k: 400     xk: array([  2.60992216e-11,   5.00000963e+02])
        fk: 2254.7254242978743

      Parameter values: array([  2.60992216e-11,   5.00000963e+02])
      Function value:   2254.7254200955554
      Iterations:       500
      Function calls:   1001
      Gradient calls:   501
      Hessian calls:    500
      Warning:          Maximum number of iterations reached


Parameter values: array([  2.60992216e-11,   5.00000963e+02])
Function value:   2254.7254200955554
Iterations:       156500
Function calls:   313313
Gradient calls:   156813
Hessian calls:    156500
Warning:          Mu too small.



Fitting to spin ':258&:LEU@N'
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


Method of Multipliers
~~~~~~~~~~~~~~~~~~~~~

k: 0       xk: array([ 0.,  0.])
  fk: 3163.7013439706825
Entering sub-algorithm.

      Newton minimisation
      ~~~~~~~~~~~~~~~~~~~
      Line search:  Backtracking line search.
      Hessian modification:  The Gill, Murray, and Wright modified Cholesky
algorithm.

      k: 0       xk: array([ 0.,  0.])
        fk: 3163.7013439706825
Traceback (most recent call last):
 File "/Applications/relax-1.3.1/relax-1.3/relax", line 414, in <module>
  Relax()
 File "/Applications/relax-1.3.1/relax-1.3/relax", line 131, in __init__
  self.interpreter.run(self.script_file)
 File "/Applications/relax-1.3.1/relax-1.3/prompt/interpreter.py", line 270,
in
run
  return run_script(intro=self.__intro_string, local=self.local,
script_file=script_file, quit=self.__quit_flag,
show_script=self.__show_script,
raise_relax_error=self.__raise_relax_error)
 File "/Applications/relax-1.3.1/relax-1.3/prompt/interpreter.py", line 531,
in
run_script
  return console.interact(intro, local, script_file, quit,
show_script=show_script, raise_relax_error=raise_relax_error)
 File "/Applications/relax-1.3.1/relax-1.3/prompt/interpreter.py", line 427,
in
interact_script
  execfile(script_file, local)
 File "full_analysis.py", line 673, in <module>
  Main(self.relax)
 File "full_analysis.py", line 300, in __init__
  self.multi_model()
 File "full_analysis.py", line 665, in multi_model
  minimise(MIN_ALGOR)
 File "/Applications/relax-1.3.1/relax-1.3/prompt/minimisation.py", line
362,
in minimise
minimise.minimise(min_algor=min_algor, min_options=min_options,
func_tol=func_tol, grad_tol=grad_tol, max_iterations=max_iterations,
constraints=constraints, scaling=scaling, verbosity=verbosity)
 File "/Applications/relax-1.3.1/relax-1.3/generic_fns/minimise.py", line
239,
in minimise
  minimise(min_algor=min_algor, min_options=min_options, func_tol=func_tol,
grad_tol=grad_tol, max_iterations=max_iterations, constraints=constraints,
scaling=scaling, verbosity=verbosity)
 File
"/Applications/relax-1.3.1/relax-1.3/specific_fns/model_free/mf_minimise.py",
line 987, in minimise
  results = generic_minimise(func=self.mf.func, dfunc=self.mf.dfunc,
d2func=self.mf.d2func, args=(), x0=param_vector, min_algor=min_algor,
min_options=min_options, func_tol=func_tol, grad_tol=grad_tol,
maxiter=max_iterations, A=A, b=b, full_output=
ag=verbosity)
 File
"/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/minfx/generic.py",
line 412, in generic_minimise
  results = method_of_multipliers(func=func, dfunc=dfunc, d2func=d2func,
args=args, x0=x0, min_options=min_options, A=A, b=b, l=l, u=u, c=c, dc=dc,
d2c=d2c, func_tol=func_tol, grad_tol=grad_tol, maxiter=maxiter,
full_output=full_output, print_flag=
 File
"/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/minfx/method_of_multipliers.py",
line 143, in method_of_multipliers
  results = min.minimise()
 File
"/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/minfx/method_of_multipliers.py",
line 403, in minimise
  results = self.generic_minimise(func=self.func_LA, dfunc=self.func_dLA,
d2func=self.func_d2LA, args=self.args, x0=self.xk, min_algor=self.min_algor,
min_options=self.min_options, func_tol=None, grad_tol=self.tk,
maxiter=maxiter,
full_output=1, pr
b_print_flag, print_prefix="\t")
 File
"/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/minfx/generic.py",
line 343, in generic_minimise
  results = newton(func=func, dfunc=dfunc, d2func=d2func, args=args, x0=x0,
min_options=min_options, func_tol=func_tol, grad_tol=grad_tol,
maxiter=maxiter,
full_output=full_output, print_flag=print_flag, print_prefix=print_prefix)
 File
"/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/minfx/newton.py",
line 44, in newton
  results = min.minimise()
 File
"/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/minfx/base_classes.py",
line 233, in minimise
  self.new_param_func()
 File
"/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/minfx/newton.py",
line 166, in new_param_func
  self.line_search()
 File
"/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/minfx/base_classes.py",
line 339, in backline
  self.alpha, fc = backtrack(self.func, self.args, self.xk, self.fk,
self.dfk,
self.pk, a_init=self.a0)
TypeError: 'NoneType' object is not iterable










Quoting Edward d'Auvergne <edward.dauvergne@xxxxxxxxx>:

:S  It overwrites a pre-existing file!  And the important script of
all things!!!  That'll have to be fixed.  Seb, could you submit a bug
report for that?

Cheers,

Edward


On Fri, Oct 24, 2008 at 2:12 PM, Sébastien Morin
<sebastien.morin.1@xxxxxxxxx> wrote:

Oh... Sorry... It's still early in the morning here (Quebec City)...

...

Dont' forget to specify a log file...

LOG   ->   relax -l LOG script.py

TEE   ->   relax -t LOG script.py

If you just specify the script, the script will be erased by the log...

Cheers,


Séb


Sébastien Morin wrote:

Hi Tyler,

If you want all output from relax to go to a log file, use the option
'-l'... (relax -l script.py)

If you want all output from relax to go to a file AND the terminal
(display), use the option '-t'... (relax -t script.py)

These options are visible when typing : ./relax --help  (or relax -h)

Good luck !


Séb  :)



Tyler Reddy wrote:

Okay, I submitted the report. Let me know if there's more information
you need
or a better way to submit bug reports in general.. haven't done this
before.
Also, I had to manually copy/paste the output, and while it looks fine,
if
there is a problem with the same pdb structure getting read twice or
something
that's probably just my pasting error from the unix terminal to the
browser.

On that note, how can I fix this command:

relax full_analysis.py > STDOUT.txt 2> STDERR.txt
tcsh: Ambiguous output redirect.

Or better yet, can I merge all the output streams to a single text file
and
display the output in the terminal at the same time as well (maybe I'm
getting
too ambitious there..)?

Also, I do get the same output for 'ellipsoid' as well, as Seb asked.

Yours,

Tyler


Quoting Edward d'Auvergne <edward@xxxxxxxxxxxxx>:



Hi,

This issue looks like a problem with the loaded PDB structure.  The
'local_tm' and 'sphere' optimisations do not utilise structural
information, but the 'oblate' and 'prolate' spheroids, and the
'ellipsoid' all require this info.  Normally relax will catch this
problem and deselect the spins without XH bond vectors, but this seems
to be broken in the 1.3 versions hence you get the original cryptic
Python error.  As this is a real bug with the relax source code (and
not a yet-to-be converted feature or a sample script), would you be
able to submit a bug report for this issue?  The relax bug tracker is
located at https://gna.org/bugs/?group=relax and the link at
https://gna.org/bugs/?func=additem&group=relax allows you to create a
report.  That would be much appreciated.

The bug report will be useful for having this error caught by the
relax test suite - if I can replicate the bug there then I can play
with the bug and fix it.  Note the the actual problem occurred earlier
starting with the loading of the PDB file at the structure.read_pdb()
user function.  So if you could include all print out from that user
function to the end of the traceback error message, that would be very
useful.

Cheers,

Edward


On Wed, Oct 22, 2008 at 3:17 AM, Tyler Reddy <TREDDY@xxxxxx> wrote:


Hi Seb,

I just tested 'oblate' and it produces the same error output.

Tyler


Quoting Sébastien Morin <sebastien.morin.1@xxxxxxxxx>:



Hi Tyler,

Do you get the same error when trying the 'oblate' or 'ellipsoid'
diffusion tensors ?


Sébastien


Tyler Reddy wrote:


I'm having an issue with the full_analysis.py script. It seems to
work
fine when
DIFF_MODEL = 'local_tm' or 'sphere' (converges on 4th round) but
for
'prolate'
I get the following output:

Grid search
~~~~~~~~~~~

Searching the grid.
Traceback (most recent call last):
 File "/Applications/relax-1.3.1/relax-1.3/relax", line 408, in
<module>
   Relax()
 File "/Applications/relax-1.3.1/relax-1.3/relax", line 125, in
__init__
   self.interpreter.run(self.script_file)
 File "/Applications/relax-1.3.1/relax-1.3/prompt/interpreter.py",
line 270, in
run
   return run_script(intro=self.__intro_string, local=self.local,
script_file=script_file, quit=self.__quit_flag,
show_script=self.__show_script,
raise_relax_error=self.__raise_relax_er
 File "/Applications/relax-1.3.1/relax-1.3/prompt/interpreter.py",
line 531, in
run_script
   return console.interact(intro, local, script_file, quit,
show_script=show_script, raise_relax_error=raise_relax_error)
 File "/Applications/relax-1.3.1/relax-1.3/prompt/interpreter.py",
line 427, in
interact_script
   execfile(script_file, local)
 File "full_analysis.py", line 673, in <module>
   Main(self.relax)
 File "full_analysis.py", line 284, in __init__
   grid_search(inc=inc)
 File "/Applications/relax-1.3.1/relax-1.3/prompt/minimisation.py",
line 152,
in grid_search
   minimise.grid_search(lower=lower, upper=upper, inc=inc,
constraints=constraints, verbosity=verbosity)
 File
"/Applications/relax-1.3.1/relax-1.3/generic_fns/minimise.py", line
185,
in grid_search
   grid_search(lower=lower, upper=upper, inc=inc,
constraints=constraints,
verbosity=verbosity)
 File

"/Applications/relax-1.3.1/relax-1.3/specific_fns/model_free/mf_minimise.py",
line 479, in grid_search
   self.minimise(min_algor='grid', lower=lower, upper=upper,
inc=inc,
constraints=constraints, verbosity=verbosity, sim_index=sim_index)
 File

"/Applications/relax-1.3.1/relax-1.3/specific_fns/model_free/mf_minimise.py",
line 987, in minimise
   results = generic_minimise(func=self.mf.func,
dfunc=self.mf.dfunc,
d2func=self.mf.d2func, args=(), x0=param_vector,
min_algor=min_algor,
min_options=min_options, func_tol=func_tol, g
l, maxiter=max_iterations, A=A, b=b, full_output=1,
print_flag=verbosity)
 File

"/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/minfx/generic.py",
line 319, in generic_minimise
   xk, fk, k = grid(func=func, args=args, grid_ops=min_options,
A=A, b=b, l=l,
u=u, c=c, print_flag=print_flag)
 File

"/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/minfx/grid.py",
line 129, in grid
   f = func(*(params,)+args)
 File "/Applications/relax-1.3.1/relax-1.3/maths_fns/mf.py", line
506, in
func_diff
   self.diff_data.calc_di(data, self.diff_data)
 File

"/Applications/relax-1.3.1/relax-1.3/maths_fns/direction_cosine.py",
line
64, in calc_spheroid_di
   data.dz = dot(data.xh_unit_vector, diff_data.dpar)
TypeError: unsupported operand type(s) for *: 'NoneType' and
'float'




Quoting Edward d'Auvergne <edward@xxxxxxxxxxxxx>:




Hi,

For the bug you mention, I've fixed this and the changes are in
the
repository.  There were a few other issues to do with subsequent
LaTeX
compilation and these have been fixed too.  You can see the new
sample
script at:  http://svn.gna.org/viewcvs/relax/1.3/sample_scripts/

Regards,

Edward


On Tue, Oct 21, 2008 at 3:44 AM, Tyler Reddy <TREDDY@xxxxxx>
wrote:



Hello,

1) I changed that line and I'm still having a bit of trouble (see
output
below).

2) The errors that I'm using are described as 'the standard
error for each
parameter... [which] is an easy calculation from the covariance
matrix.'
Paraphrasing from the author there--I'm guessing this isn't the
optimal
input?

3) I'm not sure it's explicitly stated in the manual, but I'm
proceeding on
the
assumption that you run the multi-model script first and then
modsel to
decide
on the right model for each given residue. A few weeks ago I was
experimenting
with this and if I didn't leave the global correlation time as
fixed the
computation seemed to take a VERY long time (unclear if it was
ever going to
finish).

Also, as a side note, since my peptide is actually in a micelle,
I'm not
sure if
there's anything extra I can do for diffusion tensor and
correlation time
type
stuff. I know some programs (i.e. the Mathematica notebooks by
Dr.
Spyracopoulos) read in PDB files for diffusion tensor
calculations, but I
suspect it's a bit of a mess when the system is more complicated
than the
structure in the PDB file would suggest.

Output:

Latex()

----------------------------------------------------------------------------------------------------

relax> pipe.create(pipe_name='results', pipe_type='mf')

relax> results.read(file='results', dir=None)
Opening the file 'results' for reading.
Traceback (most recent call last):
 File "/Applications/relax-1.3.1/relax-1.3/relax", line 408, in
<module>
 Relax()
 File "/Applications/relax-1.3.1/relax-1.3/relax", line 125, in
__init__
 self.interpreter.run(self.script_file)
 File
"/Applications/relax-1.3.1/relax-1.3/prompt/interpreter.py",
line 270,
in
run
 return run_script(intro=self.__intro_string, local=self.local,
script_file=script_file, quit=self.__quit_flag,
show_script=self.__show_script,
raise_relax_error=self.__raise_relax_error)
 File
"/Applications/relax-1.3.1/relax-1.3/prompt/interpreter.py",
line 531,
in
run_script
 return console.interact(intro, local, script_file, quit,
show_script=show_script, raise_relax_error=raise_relax_error)
 File
"/Applications/relax-1.3.1/relax-1.3/prompt/interpreter.py",
line 427,
in
interact_script
 execfile(script_file, local)
 File "latex_mf_table.py", line 220, in <module>
 Latex()
 File "latex_mf_table.py", line 68, in __init__
 self.table_body()
 File "latex_mf_table.py", line 186, in table_body
 self.file.write("%9.3f & %9.3f & " % (spin.s2, spin.s2_err))
AttributeError: 'SpinContainer' object has no attribute 's2_err'



Quoting Edward d'Auvergne <edward@xxxxxxxxxxxxx>:




Hi,

Using a new system test, I found one more bug in the script.
 This has
been fixed in the 1.3 repository line.  If you haven't used
subversion
to check out (and update) the 1.3 line, then you can see the
changes
required in my commit at:

https://mail.gna.org/public/relax-commits/2008-10/msg00402.html

Just change the line starting with '-' to the line starting with
'+'.
Oh, it may take a few minutes for the link to be generated.

Regards,

Edward


On Mon, Oct 20, 2008 at 10:12 PM, Edward d'Auvergne
<edward@xxxxxxxxxxxxx> wrote:



Hi,

That's a bug in the sample script.  Try adding a ':' character
to the
end of line 171 in your script.  I've fixed this in the 1.3
repository
line and will try to add a system test to the program to try to
catch
any bugs before you do ;)

Cheers,

Edward



On Mon, Oct 20, 2008 at 9:27 PM, Tyler Reddy <TREDDY@xxxxxx>
wrote:



I've been trying to use the latex python script on the aic
results file.
I get
the syntax error below. Not sure if I'm doing something wrong
or if
there's
just a small problem with that line of code:

Latex()


----------------------------------------------------------------------------------------------------
Traceback (most recent call last):
 File "/Applications/relax-1.3.1/relax-1.3/relax", line 408,
in
<module>
 Relax()
 File "/Applications/relax-1.3.1/relax-1.3/relax", line 125,
in
__init__
 self.interpreter.run(self.script_file)
 File
"/Applications/relax-1.3.1/relax-1.3/prompt/interpreter.py",
line 270, in
run
 return run_script(intro=self.__intro_string,
local=self.local,
script_file=script_file, quit=self.__quit_flag,
show_script=self.__show_script,
raise_relax_error=self.__raise_relax_error)
 File
"/Applications/relax-1.3.1/relax-1.3/prompt/interpreter.py",
line 531, in
run_script
 return console.interact(intro, local, script_file, quit,
show_script=show_script, raise_relax_error=raise_relax_error)
 File
"/Applications/relax-1.3.1/relax-1.3/prompt/interpreter.py",
line 427, in
interact_script
 execfile(script_file, local)
 File "latex_mf_table.py", line 171
 for spin, spin_id in spin_loop(return_id=True)
SyntaxError: invalid syntax










Quoting Edward d'Auvergne <edward@xxxxxxxxxxxxx>:




On Mon, Oct 20, 2008 at 5:12 PM, Tyler Reddy <TREDDY@xxxxxx>
wrote:



Hello,

1)

I have been using the multi model and model selection
scripts in
relax 1.3.2 but
I have trouble displaying the output in a tabulated format.
Both
scripts seem
to produce an xml document with various headers that isn't
easy to
read. It
looks like format='columnar' isn't supported. I wonder what
other
options I
have to look at this data? For some reason, I don't recall
having
this problem
on a Linux machine a few weeks ago (using a Mac OS 10.4 at
the
moment), but
anyways it would be nice to get readable model-free output.



The results file is now in XML format and the more readable
'columnar'
format has been removed from the 1.3 line.  With the change
to the new
XML results file all the contents of a data pipe,
irrespective of what
that data is, is packaged.  So you can put data into this
pipe
yourself and it will save that information (for advanced
users,
complex python objects will need the to_xml() and from_xml()
methods
to package and unpackage the data).  The reason for removing
the
'columnar' format was that it was considered too inflexible
for the
changes occuring in the 1.3 line, it contained duplicate
information,
had numerical precision issues, and there were alternatives
to easily
view this data.  You can use the value.display() and
value.write()
user functions to display and save the results for a single
parameter.
If needed, these user functions could be extended to accept
a list of
parameters.

Then there is the sample_scripts/latex_mf_table.py sample
script which
will generate a LaTeX table of the model-free results.  This
file can
be copied and modified - this requires learning a bit of
python - to
format and display the results any way you wish.  And finally
if
anyone really wants to, and has the skills to, they can
modify this
sample script to recreate a version of the 'columnar' format.
 This
could be added to the relax sample scripts, and if their
skills are
very advanced, then much code from the 1.2 relax versions can
be
recycled.





2)

The error input for the relaxation rate parameters is
currently my
non-linear
curve fitting standard deviation. I'm not sure if that means
subsequent
analysis will be completely incorrect? I guess it depends on
the
comparison of
magnitude between these errors and the type of error that is
propagated by
relax during its own curve-fitting (which I am unable to do
at the
moment).



I'm guessing this is the sum of squared error value (SSE)
from the
fit.  Or is it a regression coefficient or a chi-squared
value?  Did
the fitting use a technique such as bootstrapping or
jackknife
simulations to estimate the parameter errors via
propagation?  Or did
it use the covariance matrix?  If it is the SSE, chi-squared,
or
regression coefficient then that value cannot be used.  This
will be
wildly wrong and cause massive failure in model selection.
 It will
cause big problems in optimisation, and if you are unlucky
and have
spaces with long, curved valleys or flat curved spaces
leading to the
minimum (that's model-free models m5 to m8 in most cases and
not so
uncommon in model m4) then the minimum can be squeezed and
appear in
another completely different region in the space.  It will
likely also
cause model failure issues, which although removed by the
eliminate()
user function, might discount the best solution.  I would
guess that
all of this will have a measurable affect on the final
diffusion
tensor as well and, if so, this will cause the appearance of
artificial motions (my 2007 JBNMR paper at
http://dx.doi.org/10.1039/b702202f explains these problems
in detail).
If one is not careful with the errors and they are
significantly off,
then the result is that the results may not be real.  So I
would only
use the error if it comes from an established error
propagation
technique (i.e. from data to parameter error propagation).

Regards,

Edward




_______________________________________________
relax (http://nmr-relax.com)

This is the relax-users mailing list
relax-users@xxxxxxx

To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-users






_______________________________________________
relax (http://nmr-relax.com)

This is the relax-users mailing list
relax-users@xxxxxxx

To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-users




_______________________________________________
relax (http://nmr-relax.com)

This is the relax-users mailing list
relax-users@xxxxxxx

To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-users



_______________________________________________
relax (http://nmr-relax.com)

This is the relax-users mailing list
relax-users@xxxxxxx

To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-users



_______________________________________________
relax (http://nmr-relax.com)

This is the relax-users mailing list
relax-users@xxxxxxx

To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-users





_______________________________________________
relax (http://nmr-relax.com)

This is the relax-users mailing list
relax-users@xxxxxxx

To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-users














_______________________________________________
relax (http://nmr-relax.com)

This is the relax-users mailing list
relax-users@xxxxxxx

To unsubscribe from this list, get a password
reminder, or change your subscription options,
visit the list information page at
https://mail.gna.org/listinfo/relax-users







Related Messages


Powered by MHonArc, Updated Wed Nov 05 22:20:12 2008