The Map.map_3D_text() method was designed for single spin model-free
models.  It fails otherwise.  This might be a case of not enough user
feedback.  It will be easy to fix though.

Regards,

Edward



On 5 May 2014 17:45, Edward d'Auvergne <[email protected]> wrote:
> Ok, now I can reproduce it :)  It is the Map.map_3D_text() method of
> the pipe_control.opendx module where the problem really is.
>
> Regards,
>
> Edward
>
>
>
> On 5 May 2014 17:37, Troels Emtekær Linnet <[email protected]> wrote:
>> When reverting the change, you can get the bug by:
>>
>> relax test_suite/system_tests/scripts/relax_disp/cpmg_synthetic.py
>>
>> 2014-05-05 17:36 GMT+02:00 Troels Emtekær Linnet <[email protected]>:
>>> Hi Edward.
>>>
>>> Sorry for being unclear.
>>>
>>> It is this comment:
>>> https://gna.org/bugs/?22012#comment3
>>>
>>>
>>>
>>> dx.map(params=['dw', 'pA', 'kex'], map_type='Iso3D', spin_id=':1@N',
>>> inc=20, lower=None, upper=None, axis_incs=5, file_prefix='map',
>>> dir=None, point=None, point_file='point', remap=None)
>>>
>>> Creating the OpenDX .net program file.
>>> Opening the file 'map.net' for writing.
>>>
>>> Creating the OpenDX .cfg program configuration file.
>>> Opening the file 'map.cfg' for writing.
>>>
>>> Creating the OpenDX .general file.
>>> Opening the file 'map.general' for writing.
>>>
>>> Creating the map.
>>> Opening the file 'map' for writing.
>>> Progress: 0.000%
>>> RelaxWarning: invalid value encountered in double_scalars
>>> debug> Execution lock: Release by 'script UI' ('script' mode).
>>> Traceback (most recent call last):
>>> File "/Users/tlinnet/software/relax_trunk/multi/processor.py", line 494, in 
>>> run
>>> self.callback.init_master(self)
>>> File "/Users/tlinnet/software/relax_trunk/multi/__init__.py", line
>>> 318, in default_init_master
>>> self.master.run()
>>> File "/Users/tlinnet/software/relax_trunk/relax.py", line 194, in run
>>> self.interpreter.run(self.script_file)
>>> File "/Users/tlinnet/software/relax_trunk/prompt/interpreter.py", line
>>> 275, in run
>>> return run_script(intro=self.__intro_string, local=locals(),
>>> script_file=script_file, show_script=self.__show_script,
>>> raise_relax_error=self.__raise_relax_error)
>>> File "/Users/tlinnet/software/relax_trunk/prompt/interpreter.py", line
>>> 569, in run_script
>>> return console.interact(intro, local, script_file,
>>> show_script=show_script, raise_relax_error=raise_relax_error)
>>> File "/Users/tlinnet/software/relax_trunk/prompt/interpreter.py", line
>>> 468, in interact_script
>>> exec_script(script_file, local)
>>> File "/Users/tlinnet/software/relax_trunk/prompt/interpreter.py", line
>>> 347, in exec_script
>>> runpy.run_module(module, globals)
>>> File 
>>> "/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/runpy.py",
>>> line 180, in run_module
>>> fname, loader, pkg_name)
>>> File 
>>> "/Library/Frameworks/Python.framework/Versions/7.3/lib/python2.7/runpy.py",
>>> line 72, in _run_code
>>> exec code in run_globals
>>> File 
>>> "/Users/tlinnet/software/relax_trunk/test_suite/system_tests/scripts/relax_disp/cpmg_synthetic.py",
>>> line 277, in <module>
>>> dx.map(params=['dw', 'pA', 'kex'], map_type='Iso3D', spin_id=":1@N",
>>> inc=20, lower=None, upper=None, axis_incs=5, file_prefix='map',
>>> dir=ds.resdir, point=None, point_file='point', remap=None)
>>> File "/Users/tlinnet/software/relax_trunk/prompt/uf_objects.py", line
>>> 221, in _call_
>>> self._backend(*new_args, **uf_kargs)
>>> File "/Users/tlinnet/software/relax_trunk/pipe_control/opendx.py",
>>> line 88, in map
>>> Map(params, spin_id, inc, lower, upper, axis_incs, file_prefix, dir,
>>> point, point_file, remap)
>>> File "/Users/tlinnet/software/relax_trunk/pipe_control/opendx.py",
>>> line 184, in _init_
>>> self.create_map()
>>> File "/Users/tlinnet/software/relax_trunk/pipe_control/opendx.py",
>>> line 197, in create_map
>>> self.map_3D_text(map_file)
>>> File "/Users/tlinnet/software/relax_trunk/pipe_control/opendx.py",
>>> line 255, in map_3D_text
>>> k, n, chi2 = self.model_statistics(spin_id=self.spin_id)
>>> File 
>>> "/Users/tlinnet/software/relax_trunk/specific_analyses/relax_disp/api.py",
>>> line 683, in model_statistics
>>> spins = spin_ids_to_containers(spin_ids)
>>> File 
>>> "/Users/tlinnet/software/relax_trunk/specific_analyses/relax_disp/data.py",
>>> line 3620, in spin_ids_to_containers
>>> for id in spin_ids:
>>> TypeError: 'NoneType' object is not iterable
>>>
>>> 2014-05-05 17:27 GMT+02:00 Edward d'Auvergne <[email protected]>:
>>>> The argument checking is reasonable, but the code:
>>>>
>>>> +        #spins = spin_ids_to_containers(spin_ids)
>>>> +
>>>> +        spins_list = []
>>>> +        for spin_id in self.model_loop():
>>>> +            spins_list.append(spin_id[0])
>>>> +
>>>> +        spins = spin_ids_to_containers(spins_list)
>>>>
>>>> breaks the logic.  This cannot be done, as the code calling
>>>> model_statistics() must be looping over the models (i.e. the
>>>> model_loop()), so you cannot have the model_loop() inside it.  Any API
>>>> method which accepts the model_info argument will follow this logic.
>>>>
>>>> Regards,
>>>>
>>>> Edward
>>>>
>>>>
>>>>
>>>> On 5 May 2014 17:23, Edward d'Auvergne <[email protected]> wrote:
>>>>> The original code was correct.  The full test suite passes when this
>>>>> change is not included.  Why did you make this change?  What was the
>>>>> purpose?  I'm a little confused.
>>>>>
>>>>> Regards,
>>>>>
>>>>> Edward
>>>>>
>>>>>
>>>>>
>>>>> On 5 May 2014 17:15, Troels Emtekær Linnet <[email protected]> wrote:
>>>>>> Ehhhh.
>>>>>>
>>>>>> Can you suggest a change?
>>>>>>
>>>>>> Best
>>>>>> Troels
>>>>>>
>>>>>> 2014-05-05 17:05 GMT+02:00 Edward d'Auvergne <[email protected]>:
>>>>>>> Hi,
>>>>>>>
>>>>>>> I now have the failure when running:
>>>>>>>
>>>>>>> $ ./relax -s Relax_disp.test_hansen_cpmg_data_auto_analysis
>>>>>>>
>>>>>>> This is because the change is incorrect.  The model_statistics()
>>>>>>> method is called once for each individual model - for each iteration
>>>>>>> of the model_loop(), which for the dispersion analysis is each spin
>>>>>>> cluster (or individual spins).  The logic:
>>>>>>>
>>>>>>>         spins_list = []
>>>>>>>         for spin_id in self.model_loop():
>>>>>>>             spins_list.append(spin_id[0])
>>>>>>>
>>>>>>>         spins = spin_ids_to_containers(spins_list)
>>>>>>>
>>>>>>> is incorrect as the model_loop() loops over all spin clusters.
>>>>>>> Therefore the 'spins' object will now be a list of the first spin
>>>>>>> system from all clusters.  Previously it was simply a list of all the
>>>>>>> spins for the current spin cluster.  I hope this makes sense.
>>>>>>>
>>>>>>> Regards,
>>>>>>>
>>>>>>> Edward
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On 5 May 2014 16:52, Troels Emtekær Linnet <[email protected]> 
>>>>>>> wrote:
>>>>>>>> Now ready to be tested with:
>>>>>>>>
>>>>>>>> relax -s Relax_disp.test_hansen_cpmg_data_auto_analysis -d
>>>>>>>>
>>>>>>>>
>>>>>>>> ---------- Forwarded message ----------
>>>>>>>> From:  <[email protected]>
>>>>>>>> Date: 2014-05-05 16:46 GMT+02:00
>>>>>>>> Subject: r22958 - /trunk/specific_analyses/relax_disp/api.py
>>>>>>>> To: [email protected]
>>>>>>>>
>>>>>>>>
>>>>>>>> Author: tlinnet
>>>>>>>> Date: Mon May  5 16:46:10 2014
>>>>>>>> New Revision: 22958
>>>>>>>>
>>>>>>>> URL: http://svn.gna.org/viewcvs/relax?rev=22958&view=rev
>>>>>>>> Log:
>>>>>>>> Inserted commit r22954 to fix the AIC method selection.
>>>>>>>>
>>>>>>>> The command used was:
>>>>>>>> svn merge -r22953:r22954 .
>>>>>>>>
>>>>>>>> .....
>>>>>>>>     Attempt to fix function model_statistics() in API for relax_disp.
>>>>>>>>
>>>>>>>>     bug #22012(https://gna.org/bugs/?22012): dx.map not implemented
>>>>>>>> for pipe type relax_disp.
>>>>>>>>
>>>>>>>>     Modified:
>>>>>>>>         trunk/specific_analyses/relax_disp/api.py
>>>>>>>> .....
>>>>>>>>
>>>>>>>>
>>>>>>>> Modified:
>>>>>>>>     trunk/specific_analyses/relax_disp/api.py
>>>>>>>>
>>>>>>>> Modified: trunk/specific_analyses/relax_disp/api.py
>>>>>>>> URL: 
>>>>>>>> http://svn.gna.org/viewcvs/relax/trunk/specific_analyses/relax_disp/api.py?rev=22958&r1=22957&r2=22958&view=diff
>>>>>>>> ==============================================================================
>>>>>>>> --- trunk/specific_analyses/relax_disp/api.py   (original)
>>>>>>>> +++ trunk/specific_analyses/relax_disp/api.py   Mon May  5 16:46:10 
>>>>>>>> 2014
>>>>>>>> @@ -678,9 +678,21 @@
>>>>>>>>          @rtype:                 tuple of (int, int, float)
>>>>>>>>          """
>>>>>>>>
>>>>>>>> +        # Bad argument combination.
>>>>>>>> +        if model_info == None and spin_id == None:
>>>>>>>> +            raise RelaxError("Either the model_info or spin_id
>>>>>>>> argument must be supplied.")
>>>>>>>> +        elif model_info != None and spin_id != None:
>>>>>>>> +            raise RelaxError("The model_info arg " + repr(model_info)
>>>>>>>> + " and spin_id arg " + repr(spin_id) + " clash.  Only one should be
>>>>>>>> supplied.")
>>>>>>>> +
>>>>>>>>          # Unpack the data.
>>>>>>>>          spin_ids = model_info
>>>>>>>> -        spins = spin_ids_to_containers(spin_ids)
>>>>>>>> +        #spins = spin_ids_to_containers(spin_ids)
>>>>>>>> +
>>>>>>>> +        spins_list = []
>>>>>>>> +        for spin_id in self.model_loop():
>>>>>>>> +            spins_list.append(spin_id[0])
>>>>>>>> +
>>>>>>>> +        spins = spin_ids_to_containers(spins_list)
>>>>>>>>
>>>>>>>>          # The number of parameters for the cluster.
>>>>>>>>          k = param_num(spins=spins)
>>>>>>>>
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> relax (http://www.nmr-relax.com)
>>>>>>>>
>>>>>>>> This is the relax-commits 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-commits
>>>>>>>>
>>>>>>>> _______________________________________________
>>>>>>>> relax (http://www.nmr-relax.com)
>>>>>>>>
>>>>>>>> This is the relax-devel 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-devel

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

This is the relax-devel 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-devel

Reply via email to