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