Hi all,
I just tried, a couple of days ago, the CONV_LOOP = 1 option in the
full_analysis,py script.
Strangely (as opposed to Douglas), it works well for me with different
DIFF_MODEL options. Also, I get the same exact results for differents
rounds of calculation/optimization (chi-squared, model convergence, etc).
I used line 1.2 revision 3354.
Cheers
Séb
Douglas Kojetin 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
>>>>>>>>>>> [email protected]
>>>>>>>>>>>
>>>>>>>>>>> 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
> [email protected]
>
> 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
>
>
--
______________________________________
_______________________________________________
| |
|| 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 |||
|| ||
|_______________________________________________|
______________________________________
_______________________________________________
relax (http://nmr-relax.com)
This is the relax-users mailing list
[email protected]
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