Hi all !
First of all, I think that the new feature for automatic looping is
quite interesting..!
However, I think that something could be done to make the analysis
easier.
When one starts a relax run, text is sent to the standard output. I
usually redirect this text to a log file so I can analyze if any
trouble arises...
I think that logging should be automatic. This would not mean that
standard output would be suppress, but rather that standard output
would be, also, saved in a text file along with the results.
For analysis where some kind of looping is done (like here), the logs
could be separated into different steps. For the full_analysis.py
script, logging could be done independantly for each round and added to
the other directories created...
aic/ m0/ m1/ m2/ m3/ m4/ m5/ m6/ m7/ m8/ m9/ opt/ log
You may say that we can manually do that, but when using the automatic
looping options, one would get a huge log...
Maybe, also, two versions of the log could created, one detailed and
one only logging main topics so one can easily follow the processes.
This could be interesting for people not familiar with the details of
relax and of the approaches used for calculation/optimization...
Let me know what you think of this and also if I'm being clear or not...
Cheers
Séb :)
Edward d'Auvergne wrote:
Hi,
If you can see the list of bugs, then you are at the main bug tracker
page. There should be a menu at the top which says 'Bugs'. Click on
this link and then select 'Submit'. You should be then able to submit
a report as described in the relax manual. If you have a Gna! account
already then don't forget to log in prior to submitting the report.
If you don't have a Gna! account, then don't bother setting one up.
This is not important at all!
Cheers,
Edward
On 8/29/07, Douglas Kojetin <douglas.kojetin@xxxxxxxxx> wrote:
Hi All,
Sorry for the trouble, but I don't see how to create a new bug report
on gna.org. I followed the link from the nmr-relax.com website, but
all I see is how to browse already reported bugs/items.
Thanks,
Doug
On Aug 29, 2007, at 11:55 AM, Edward d'Auvergne wrote:
Hi,
This is definitely a bug and will occur whenever there is a spin
system loaded into the system but which has not been used in the
analysis (because of deselection or missing relaxation data). The
problem is that self.relax.data.res[run][i].model does not exist for
all spin systems in your system. Would you be able to create a bug
report for this issue? Thanks. There are three places in the
'convergence()' function in which this failure will occur, but I'll
fix all of these once the bug report is complete so I can point to the
bug report in the SVN commit messages.
Cheers,
Edward
On 8/29/07, Douglas Kojetin <douglas.kojetin@xxxxxxxxx> wrote:
Hi Edward,
I am just picking back up on my relaxation analysis, and noticed that
the CONV_LOOP = 1 function is full_analysis.py does not seem to work
properly. I get the following error:
"""
#####################
# Convergence tests #
#####################
Chi-squared test:
chi2 (k-1): 164.3021658998544
chi2 (k): 168.91097779838205
The chi-squared value has not converged.
Identical model-free models test:
Traceback (most recent call last):
File "/opt/relax/1.2/relax", line 454, in ?
Relax()
File "/opt/relax/1.2/relax", line 166, in __init__
self.interpreter.run()
File "/opt/relax/1.2/prompt/interpreter.py", line 213, in run
run_script(intro=self.relax.intro_string, local=self.local,
script_file=self.relax.script_file, quit=1)
File "/opt/relax/1.2/prompt/interpreter.py", line 388, in
run_script
console.interact(intro, local, script_file, quit)
File "/opt/relax/1.2/prompt/interpreter.py", line 340, in
interact_script
execfile(script_file, local)
File "full_analysis.py", line 574, in ?
Main(self.relax)
File "full_analysis.py", line 247, in __init__
converged = self.convergence(run=name)
File "full_analysis.py", line 368, in convergence
curr_models = curr_models + self.relax.data.res[run][i].model
AttributeError: Element instance has no attribute 'model'
"""
Thanks,
Doug
On Jun 27, 2007, at 11:22 AM, Edward d'Auvergne wrote:
Hi,
To commit changes to the repository, you need to become a relax
developer. There is detailed information in the relax manual about
this long process. Alternatively if you run the command svn diff to
create a patch file, I can then apply the patch and make the commit
for you. In this case however I am making the changes to the 1.3
repository line and then back porting to the 1.2 line (this is the
origin of the relax_data_store error you saw before). Therefore if
you post what the changes are, I will manually apply them to 1.3 and
then back port to 1.2.
Cheers,
Edward
P.S. The change to line 290 was unnecessary as far as I can see (I
could be wrong though). And I also replaced the looping over
LOCAL_TM_MODELS and MF_MODELS with a single test within the model-
free
model loop which already exists - just to simplify the code. The
changes have been committed to the repository.
On 6/27/07, Douglas Kojetin <douglas.kojetin@xxxxxxxxx> wrote:
Another update. I had to change a few more lines, but the script
seems to work properly now.
% diff OLD.py NEW.py
229a230,231
if name in self.relax.data.run_names:
run.delete(name)
290a293,294
if 'final' in self.relax.data.run_names:
run.delete('final')
524a529,531
for name_to_remove in LOCAL_TM_MODELS:
if name_to_remove in self.relax.data.run_names:
run.delete(name_to_remove)
526a534,536
for name_to_remove in MF_MODELS:
if name_to_remove in self.relax.data.run_names:
run.delete(name_to_remove)
If you would like me to commit these changes, just let me know
where
I can find instructions on how to do so.
Thanks,
Doug
On Jun 26, 2007, at 3:58 AM, Edward d'Auvergne wrote:
Whoops, that should have been 'self.relax.data.run_names'! It's
all
fixed in the repository.
Cheers,
Edward
On 6/25/07, Douglas Kojetin <douglas.kojetin@xxxxxxxxx> wrote:
Hi Edward,
A new error, that appears before the first round of iteration
starts
after executing the script:
-------------------------------------------------------------------
--
---
----------------------------
Traceback (most recent call last):
File "/home/dkojetin/bin/relax", line 454, in ?
Relax()
File "/home/dkojetin/bin/relax", line 166, in __init__
self.interpreter.run()
File "/opt/relax/1.2/prompt/interpreter.py", line 213, in run
run_script(intro=self.relax.intro_string, local=self.local,
script_file=self.relax.script_file, quit=1)
File "/opt/relax/1.2/prompt/interpreter.py", line 388, in
run_script
console.interact(intro, local, script_file, quit)
File "/opt/relax/1.2/prompt/interpreter.py", line 340, in
interact_script
execfile(script_file, local)
File "n3.py", line 578, in ?
Main(self.relax)
File "n3.py", line 230, in __init__
self.load_tensor()
File "n3.py", line 499, in load_tensor
if 'previous' in self.relax.data.runs:
AttributeError: Data instance has no attribute 'runs'
Doug
On Jun 25, 2007, at 8:54 AM, Edward d'Auvergne wrote:
Hi,
Sorry, that relax_data_store was 1.3 line specific and I
forgot to
change that for the 1.2 line. The repository code should now
have
that fixed.
Cheers,
Edward
On 6/25/07, Douglas Kojetin <douglas.kojetin@xxxxxxxxx> wrote:
Hello,
Here is the error reported by the modified full_analysis.py
script
(named n.py in the below Traceback):
#--start
-------------------------------------------------------------------
--
---
----------------------------
Traceback (most recent call last):
File "/home/dkojetin/bin/relax", line 454, in ?
Relax()
File "/home/dkojetin/bin/relax", line 166, in __init__
self.interpreter.run()
File "/opt/relax/1.2/prompt/interpreter.py", line 213, in
run
run_script(intro=self.relax.intro_string,
local=self.local,
script_file=self.relax.script_file, quit=1)
File "/opt/relax/1.2/prompt/interpreter.py", line 388, in
run_script
console.interact(intro, local, script_file, quit)
File "/opt/relax/1.2/prompt/interpreter.py", line 340, in
interact_script
execfile(script_file, local)
File "n.py", line 577, in ?
Main(self.relax)
File "n.py", line 229, in __init__
self.load_tensor()
File "n.py", line 498, in load_tensor
if relax_data_store.has_key('previous'):
NameError: global name 'relax_data_store' is not defined
#--end
Thanks,
Doug
On Jun 25, 2007, at 4:42 AM, Edward d'Auvergne wrote:
Hi,
I've just made modifications to the 1.2 and 1.3 repository
lines to
hopefully fix this problem. Could you try again to see if
the
script
works this time?
Cheers,
Edward
On 6/25/07, Douglas Kojetin <douglas.kojetin@xxxxxxxxx>
wrote:
Hi Edward,
I gave the new script a try, setting CONV_LOOP = 1, but it
reported
an error after optimizing the first round:
"""
Convergence:
[ No ]
relax> run.create(run='previous', run_type='mf')
RelaxError: The run 'previous' already exists.
"""
If you have any suggestions for changes to the script, send
them my
way and I'll give it a try.
Doug
On Jun 24, 2007, at 11:47 AM, Edward d'Auvergne wrote:
Hi,
The simplest way to do this would be to use a while loop
using a
modified version of the convergence() function which
returns
1 or 0
depending on whether the results have converged
(exactly like
your
suggestion). I have added this looping ability to the
full_analysis.py script in the relax repository (to both
the 1.2
and
1.3 lines). This is not activated by default though
and the
scripts
in the repository are significantly different from that in
the
relax
1.2.10 version (all the variables which should be
modified by
the user
have been shifted to the top of the script). Would you be
able to
test if this automatic looping over all rounds of
optimisation
until
convergence actually works? There could possibly be bugs
lurking
there. Thanks.
The problem that you encountered with the calling of the
__init__()
function is because this function should not be called.
Using that
type of approach, the looping should have been outside
of the
Main
class to work.
Cheers,
Edward
On 6/16/07, Douglas Kojetin <douglas.kojetin@xxxxxxxxx>
wrote:
Hi All,
Is it possible to edit full_analysis.py so the
optimization of
MII to
MV (self.round > 0) is done automatically by looping
until
convergence?
Do you mean that the script will automatically
I tried to do this by modifying the following in
convergence() [near the end]:
"""
# Final print out.
##################
print "\nConvergence:"
if chi2_converged and models_converged and
params_converged:
print " [ Yes ]"
return 1
else:
print " [ No ]"
return 0
"""
then modifying __init__(), at the end of the "elif
DIFF_MODEL ==
'sphere' or DIFF_MODEL == 'prolate' or DIFF_MODEL ==
'oblate' or
DIFF_MODEL == 'ellipsoid':" statement:
"""
# Test for convergence.
test=self.convergence(run=name)
if test == 0:
__init__(self.relax)
#Main(self.relax)
"""
but it did not work properly. I think the problem has
something to
do with the call to __init__() or Main(). I'll see if
I can
dig up
the error reported by relax.
Thanks,
Doug
_______________________________________________
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,tes
visit the list information page at
https://mail.gna.org/listinfo/relax-users
--
______________________________________
_______________________________________________
| |
|| Sebastien Morin ||
||| Etudiant au PhD en biochimie |||
|||| Laboratoire de resonance magnetique nucleaire ||||
||||| Dr Stephane Gagne |||||
|||| CREFSIP (Universite Laval, Quebec, CANADA) ||||
||| 1-418-656-2131 #4530 |||
|| ||
|_______________________________________________|
______________________________________
|