Hi, It happened again. relax goes through sphere/init and sphere/round_1 ok, but it fails on the execution of the next round. I'll submit a bug report shortly.
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 <[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