Hi,

This is part of the parameter checking required in the target function
code.  Something is producing a NaN, and this needs to be caught.
You'll see my attempts at catching these conditions by running the
following from the relax base directory:

$ grep "if " lib/dispersion/* -A1

Obviously something is not caught when it should be.  You can use the
--traceback and --numpy-raise relax options to better debug this.
Once you find the position in the code where the NaN (or Inf) arises,
you can then add such an 'if' condition to fix the bug.

Regards,

Edward



On 7 May 2014 17:07, Troels E. Linnet <[email protected]> wrote:
> URL:
>   <http://gna.org/bugs/?22017>
>
>                  Summary: LinAlgError, for all numerical CPMG models.
>                  Project: relax
>             Submitted by: tlinnet
>             Submitted on: Wed 07 May 2014 03:07:49 PM UTC
>                 Category: relax's source code
> Specific analysis category: Relaxation dispersion
>                 Priority: 7 - High
>                 Severity: 4 - Important
>                   Status: None
>              Assigned to: None
>          Originator Name:
>         Originator Email:
>              Open/Closed: Open
>                  Release: Repository: trunk
>          Discussion Lock: Any
>         Operating System: All systems
>
>     _______________________________________________________
>
> Details:
>
> Hi Edward.
>
> The attached script, will make relax trip.
>
> I am reading in fake R2eff points, and then do a back calculation with:
>
>     sfrq_1 = 599.8908617*1E6
>     ncycs_1 = [2, 4, 8, 10, 20, 30, 40, 60]
>     sfrq_2 = 499.8908617*1E6
>     ncycs_2 = [2, 4, 8, 10, 30, 35, 40, 50]
>
> With the following dynamic parameters
> ['Ala', 1, 'N', {'r2': {r20_key_1:10, r20_key_2:11.5}, 'r2a': {r20_key_1:10,
> r20_key_2:11.5}, 'r2b': {r20_key_1:10, r20_key_2:11.5}, 'kex': 1000, 'pA':
> 0.99, 'dw': 2} ]
>
> #################3
> relax_disp.r2eff_read_spin(id='CPMG_599.9', spin_id=':1@N',
> file='CPMG_599.9_1_N.txt', dir=None, disp_point_col=1, offset_col=None,
> data_col=2, error_col=3, sep=None)
> Opening the file 'CPMG_599.9_1_N.txt' for reading.
> The following R2eff/R1rho data has been loaded into the relax data store:
>
> # R2eff_key                                 Disp_point              R2eff
>              R2eff_error
> sq_cpmg_599.89086170_0.000_33.333             33.333333333333336
> 1.000000000000000       0.100000000000000
> sq_cpmg_599.89086170_0.000_66.667             66.666666666666671
> 1.000000000000000       0.100000000000000
> sq_cpmg_599.89086170_0.000_133.333           133.333333333333343
> 1.000000000000000       0.100000000000000
> sq_cpmg_599.89086170_0.000_166.667           166.666666666666686
> 1.000000000000000       0.100000000000000
> sq_cpmg_599.89086170_0.000_333.333           333.333333333333371
> 1.000000000000000       0.100000000000000
> sq_cpmg_599.89086170_0.000_500.000           500.000000000000000
> 1.000000000000000       0.100000000000000
> sq_cpmg_599.89086170_0.000_666.667           666.666666666666742
> 1.000000000000000       0.100000000000000
> sq_cpmg_599.89086170_0.000_1000.000         1000.000000000000000
> 1.000000000000000       0.100000000000000
> Traceback (most recent call last):
>   File "/sbinlab2/tlinnet/software/NMR-relax/relax_trunk/multi/processor.py",
> line 494, in run
>     self.callback.init_master(self)
>   File "/sbinlab2/tlinnet/software/NMR-relax/relax_trunk/multi/__init__.py",
> line 318, in default_init_master
>     self.master.run()
>   File "/sbinlab2/tlinnet/software/NMR-relax/relax_trunk/relax.py", line 194,
> in run
>     self.interpreter.run(self.script_file)
>   File
> "/sbinlab2/tlinnet/software/NMR-relax/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
> "/sbinlab2/tlinnet/software/NMR-relax/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
> "/sbinlab2/tlinnet/software/NMR-relax/relax_trunk/prompt/interpreter.py", line
> 468, in interact_script
>     exec_script(script_file, local)
>   File
> "/sbinlab2/tlinnet/software/NMR-relax/relax_trunk/prompt/interpreter.py", line
> 347, in exec_script
>     runpy.run_module(module, globals)
>   File "/usr/lib64/python2.6/runpy.py", line 140, in run_module
>     fname, loader, pkg_name)
>   File "/usr/lib64/python2.6/runpy.py", line 34, in _run_code
>     exec code in run_globals
>   File
> "/sbinlab2/tlinnet/software/NMR-relax/relax_trunk/test_suite/system_tests/scripts/relax_disp/cpmg_synthetic.py",
> line 270, in <module>
>     r2effs = optimisation.back_calc_r2eff(spin=cur_spin, spin_id=cur_spin_id)
>   File
> "/sbinlab2/tlinnet/software/NMR-relax/relax_trunk/specific_analyses/relax_disp/optimisation.py",
> line 188, in back_calc_r2eff
>     chi2 = model.func(param_vector)
>   File
> "/sbinlab2/tlinnet/software/NMR-relax/relax_trunk/target_functions/relax_disp.py",
> line 1419, in func_ns_cpmg_2site_3D
>     return self.calc_ns_cpmg_2site_3D_chi2(R20A=R20, R20B=R20, dw=dw, pA=pA,
> kex=kex)
>   File
> "/sbinlab2/tlinnet/software/NMR-relax/relax_trunk/target_functions/relax_disp.py",
> line 542, in calc_ns_cpmg_2site_3D_chi2
>     r2eff_ns_cpmg_2site_3D(r180x=self.r180x, M0=self.M0, r20a=R20A[r20_index],
> r20b=R20B[r20_index], pA=pA, pB=pB, dw=dw_frq, k_AB=k_AB, k_BA=k_BA,
> inv_tcpmg=self.inv_relax_times[0][mi], tcp=self.tau_cpmg[0][mi],
> back_calc=self.back_calc[0][si][mi][0],
> num_points=self.num_disp_points[0][si][mi][0], power=self.power[0][mi])
>   File
> "/sbinlab2/tlinnet/software/NMR-relax/relax_trunk/lib/dispersion/ns_cpmg_2site_3d.py",
> line 115, in r2eff_ns_cpmg_2site_3D
>     Rexpo = matrix_exponential(R*tcp[i])
>   File
> "/sbinlab2/tlinnet/software/NMR-relax/relax_trunk/lib/linear_algebra/matrix_exponential.py",
> line 46, in matrix_exponential
>     W, V = eig(A)
>   File "/usr/lib64/python2.6/site-packages/numpy/linalg/linalg.py", line 999,
> in eig
>     _assertFinite(a)
>   File "/usr/lib64/python2.6/site-packages/numpy/linalg/linalg.py", line 144,
> in _assertFinite
>     raise LinAlgError, "Array must not contain infs or NaNs"
> LinAlgError: Array must not contain infs or NaNs
> #########################
>
>
>
>
>
>
>     _______________________________________________________
>
> File Attachments:
>
>
> -------------------------------------------------------
> Date: Wed 07 May 2014 03:07:49 PM UTC  Name: cpmg_synthetic.py  Size: 16kB
> By: tlinnet
>
> <http://gna.org/bugs/download.php?file_id=20667>
>
>     _______________________________________________________
>
> Reply to this item at:
>
>   <http://gna.org/bugs/?22017>
>
> _______________________________________________
>   Message sent via/by Gna!
>   http://gna.org/
>
>
> _______________________________________________
> 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