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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]>
> >> 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 <[EMAIL PROTECTED]>
> >> >> 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@gna.org
> >> >> >> >> >>
> >> >> >> >> >> 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@gna.org

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

Reply via email to