Hi, How about these for a hint:
http://www.mail-archive.com/[email protected]/msg20612.html http://www.mail-archive.com/[email protected]/msg20613.html http://www.mail-archive.com/[email protected]/msg20615.html The problem was as mentioned in the commit message. The spin ID argument was completely ignored, but it should override the model_info argument. Anyway, there are other problems there as I have not completed the pipe_control.opendx module code. You may see these later. Regards, Edward On 5 May 2014 20:48, Troels Emtekær Linnet <[email protected]> wrote: > Can you give a hint? > > I need to fix this rather fast, and get on with some relax problems. > > I think I can probably convince you, that relax have some issues. > I have several times seen "inf" values in the minimisation algorithm. > > Try > cp > $HOME/software/NMR-relax/relax_trunk/test_suite/system_tests/scripts/relax_disp/cpmg_synthetic.py > . > Set ds.GRID_INC = None. > Set ds.opendx = False > > And see that the function value goes bananas! > > Why is this ???? > > Is it because of lib/dispersion/cr72.py > where: > #################### > # Catch large values of etapos going into the cosh function. > if etapos > 100: > back_calc[i] = 1e100 > continue > > # The arccosh argument - catch invalid values. > fact = Dpos * cosh(etapos) - Dneg * cos(etaneg) > if fact < 1.0: > back_calc[i] = r20_kex > continue > ################### > > > Or is it because that: > relax_trunk/specific_analyses/relax_disp/parameters.py linear_constraints() > has: > 0 <= kex <= 2e6 > > That should really only be: > CPMG: 10.000 > R1rho: 50.000 - 100.000 ? > > But not: 2000000 ! > No experiment can see this ??? > > Or is it because there is no minimisation restraint on dw? > So it can just fly out of the scale. > > > Jesus. > Something is wrong.... > I know it, but I simply can't prove to you, before I get that map. :-) > > There must be a hill over dw, pA and kex. > > A chi2 of pA=0.5 with high dw, must nearly be the same as pA=0.9x with low dw. > And relax is not happy for low dw. > > So it goes out of scale on dw, finding pA=0.5. > > Or is it in the scaling matrix? > > Best > The fighting Troels > > > > > > > > 2014-05-05 17:48 GMT+02:00 Edward d'Auvergne <[email protected]>: >> 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

