I can see no way of removing this dependence in the numeric models, at least for now. The keyword argument type in the docstrings need a good cleaning up though:
[edward@localhost disp_spin_speed]$ grep -r "@type num_points" lib/dispersion/* lib/dispersion/lm63_3site.py: @type num_points: int lib/dispersion/ns_cpmg_2site_3d.py: @type num_points: numpy int array of rank [NE][NS][[NM][NO] lib/dispersion/ns_cpmg_2site_star.py: @type num_points: numpy int array of rank [NE][NS][[NM][NO] lib/dispersion/ns_mmq_2site.py: @type num_points: numpy int array of rank [NS][[NM][NO][ND] lib/dispersion/ns_mmq_2site.py: @type num_points: numpy int array of rank [NS][[NM][NO] lib/dispersion/ns_mmq_3site.py: @type num_points: int lib/dispersion/ns_mmq_3site.py: @type num_points: int lib/dispersion/ns_r1rho_2site.py: @type num_points: int lib/dispersion/ns_r1rho_3site.py: @type num_points: int There is an extra "[" character and ND is present in one function. The ND here is what confused me about the structure of the num_point numpy array. Cheers, Edward On 17 June 2014 09:41, Troels Emtekær Linnet <[email protected]> wrote: > tlinnet@linmac:dispersion$ grep -r "@keyword num_points" . | grep -v ".pyc" > | awk '{print $1}' > ./lm63_3site.py: > ./ns_cpmg_2site_3d.py: > ./ns_cpmg_2site_star.py: > ./ns_mmq_2site.py: > ./ns_mmq_2site.py: > ./ns_mmq_3site.py: > ./ns_mmq_3site.py: > ./ns_r1rho_2site.py: > ./ns_r1rho_3site.py: > > > > 2014-06-17 9:40 GMT+02:00 Troels Emtekær Linnet <[email protected]>: > >> tlinnet@linmac:dispersion$ grep -r "@keyword num_points" . | grep -v >> ".pyc" >> >> >> ./lm63_3site.py: @keyword num_points: The number of points on the >> dispersion curve, equal to the length of the cpmg_frqs and back_calc >> arguments. >> ./ns_cpmg_2site_3d.py: @keyword num_points: The number of points on >> the dispersion curve, equal to the length of the tcp and back_calc >> arguments. >> ./ns_cpmg_2site_star.py: @keyword num_points: The number of points >> on the dispersion curve, equal to the length of the tcp and back_calc >> arguments. >> ./ns_mmq_2site.py: @keyword num_points: The number of points on the >> dispersion curve, equal to the length of the tcp and back_calc arguments. >> ./ns_mmq_2site.py: @keyword num_points: The number of points on the >> dispersion curve, equal to the length of the tcp and back_calc arguments. >> ./ns_mmq_3site.py: @keyword num_points: The number of points on the >> dispersion curve, equal to the length of the tcp and back_calc arguments. >> ./ns_mmq_3site.py: @keyword num_points: The number of points on the >> dispersion curve, equal to the length of the tcp and back_calc arguments. >> ./ns_r1rho_2site.py: @keyword num_points: The number of points >> on the dispersion curve, equal to the length of the tcp and back_calc >> arguments. >> ./ns_r1rho_3site.py: @keyword num_points: The number of points >> on the dispersion curve, equal to the length of the tcp and back_calc >> arguments. >> >> >> >> 2014-06-17 9:39 GMT+02:00 Troels Emtekær Linnet <[email protected]>: >> >>> Hi Ed. >>> >>> The original was indeed [ei][si][mi][oi]. >>> This gives much more sense. >>> >>> The number of dispersion points is only used in the numerical models. >>> >>> They are only needed for looping over power, to evolve the matrix. >>> >>> They should have been removed from all analytical models. >>> >>> Best >>> Troels >>> >>> >>> >>> >>> 2014-06-17 9:26 GMT+02:00 Edward d'Auvergne <[email protected]>: >>> >>>> Hi, >>>> >>>> What were the original indices in "num_points[0][si][mi][0][0]"? Were >>>> they [ei][si][mi][oi][di]? I guess the di index is dropped as the >>>> dimensionality of that index is now stored in the oi index. It might >>>> be worth updating the lib.dispersion docstrings to remove the [ND] >>>> part in describing the num_points argument. The structure is now >>>> rank-4 rather than rank-5. >>>> >>>> Cheers, >>>> >>>> Edward >>>> >>>> >>>> >>>> > The number of offsets and cpmg points has been lowered 2 and 1 >>>> > dimension. >>>> > This one actually tells the number of dispersion point at offset >>>> > dimension >>>> > 0. >>>> > That 0 can be changed to oi later. >>>> > >>>> > Best >>>> > Troels >>>> > >>>> > >>>> > >>>> > 2014-06-16 19:21 GMT+02:00 Edward d'Auvergne <[email protected]>: >>>> >> >>>> >> Hi Troels, >>>> >> >>>> >> There is something that worries me in this change, specifically: >>>> >> >>>> >> - num_points_si_mi = int(num_points[0][si][mi][0][0]) >>>> >> + num_points_si_mi = int(num_points[0][si][mi][0]) >>>> >> >>>> >> This is in the numeric models for CPMG-type data. Have you dropped >>>> >> the offset dimension? Note that the offset dimension will be >>>> >> essential when the first point in the TODO list in the dispersion >>>> >> chapter is implemented - the handling of offsets in the CPMG >>>> >> experiments >>>> >> >>>> >> (http://www.nmr-relax.com/manual/do_dispersion_features_yet_be_implemented.html). >>>> >> >>>> >> Regards, >>>> >> >>>> >> Edward >>>> >> >>>> >> >>>> >> >>>> >> On 16 June 2014 19:01, <[email protected]> wrote: >>>> >> > Author: tlinnet >>>> >> > Date: Mon Jun 16 19:01:36 2014 >>>> >> > New Revision: 23989 >>>> >> > >>>> >> > URL: http://svn.gna.org/viewcvs/relax?rev=23989&view=rev >>>> >> > Log: >>>> >> > Various index fixes, after the data structures have been reordered. >>>> >> > >>>> >> > Task #7807 (https://gna.org/task/index.php?7807): Speed-up of >>>> >> > dispersion >>>> >> > models for Clustered analysis. >>>> >> > >>>> >> > Modified: >>>> >> > branches/disp_spin_speed/lib/dispersion/ns_cpmg_2site_3d.py >>>> >> > branches/disp_spin_speed/lib/dispersion/ns_cpmg_2site_star.py >>>> >> > branches/disp_spin_speed/lib/dispersion/ns_mmq_2site.py >>>> >> > branches/disp_spin_speed/lib/dispersion/ns_mmq_3site.py >>>> >> > branches/disp_spin_speed/lib/dispersion/ns_r1rho_2site.py >>>> >> > branches/disp_spin_speed/lib/dispersion/ns_r1rho_3site.py >>>> >> > >>>> >> > Modified: >>>> >> > branches/disp_spin_speed/lib/dispersion/ns_cpmg_2site_3d.py >>>> >> > URL: >>>> >> > >>>> >> > http://svn.gna.org/viewcvs/relax/branches/disp_spin_speed/lib/dispersion/ns_cpmg_2site_3d.py?rev=23989&r1=23988&r2=23989&view=diff >>>> >> > >>>> >> > >>>> >> > ============================================================================== >>>> >> > --- branches/disp_spin_speed/lib/dispersion/ns_cpmg_2site_3d.py >>>> >> > (original) >>>> >> > +++ branches/disp_spin_speed/lib/dispersion/ns_cpmg_2site_3d.py Mon >>>> >> > Jun >>>> >> > 16 19:01:36 2014 >>>> >> > @@ -136,7 +136,7 @@ >>>> >> > R2A_si_mi=r20a[0][si][mi][0][0] >>>> >> > R2B_si_mi=r20b[0][si][mi][0][0] >>>> >> > dw_si_mi = dw[0][si][mi][0][0] >>>> >> > - num_points_si_mi = int(num_points[0][si][mi][0][0]) >>>> >> > + num_points_si_mi = int(num_points[0][si][mi][0]) >>>> >> > >>>> >> > # The matrix R that contains all the contributions to >>>> >> > the >>>> >> > evolution, i.e. relaxation, exchange and chemical shift evolution. >>>> >> > R = rcpmg_3d(R1A=r10a, R1B=r10b, R2A=R2A_si_mi, >>>> >> > R2B=R2B_si_mi, pA=pA, pB=pB, dw=dw_si_mi, k_AB=k_AB, k_BA=k_BA) >>>> >> > >>>> >> > Modified: >>>> >> > branches/disp_spin_speed/lib/dispersion/ns_cpmg_2site_star.py >>>> >> > URL: >>>> >> > >>>> >> > http://svn.gna.org/viewcvs/relax/branches/disp_spin_speed/lib/dispersion/ns_cpmg_2site_star.py?rev=23989&r1=23988&r2=23989&view=diff >>>> >> > >>>> >> > >>>> >> > ============================================================================== >>>> >> > --- branches/disp_spin_speed/lib/dispersion/ns_cpmg_2site_star.py >>>> >> > (original) >>>> >> > +++ branches/disp_spin_speed/lib/dispersion/ns_cpmg_2site_star.py >>>> >> > Mon Jun 16 19:01:36 2014 >>>> >> > @@ -145,7 +145,7 @@ >>>> >> > R2A_si_mi=r20a[0][si][mi][0][0] >>>> >> > R2B_si_mi=r20b[0][si][mi][0][0] >>>> >> > dw_si_mi = dw[0][si][mi][0][0] >>>> >> > - num_points_si_mi = int(num_points[0][si][mi][0][0]) >>>> >> > + num_points_si_mi = int(num_points[0][si][mi][0]) >>>> >> > >>>> >> > # The matrix that contains only the R2 relaxation >>>> >> > terms >>>> >> > ("Redfield relaxation", i.e. non-exchange broadening). >>>> >> > Rr[0, 0] = -R2A_si_mi >>>> >> > >>>> >> > Modified: branches/disp_spin_speed/lib/dispersion/ns_mmq_2site.py >>>> >> > URL: >>>> >> > >>>> >> > http://svn.gna.org/viewcvs/relax/branches/disp_spin_speed/lib/dispersion/ns_mmq_2site.py?rev=23989&r1=23988&r2=23989&view=diff >>>> >> > >>>> >> > >>>> >> > ============================================================================== >>>> >> > --- branches/disp_spin_speed/lib/dispersion/ns_mmq_2site.py >>>> >> > (original) >>>> >> > +++ branches/disp_spin_speed/lib/dispersion/ns_mmq_2site.py Mon >>>> >> > Jun >>>> >> > 16 19:01:36 2014 >>>> >> > @@ -216,7 +216,7 @@ >>>> >> > if Mx <= 0.0 or isNaN(Mx): >>>> >> > back_calc[i] = 1e99 >>>> >> > else: >>>> >> > - back_calc[i]= -inv_tcpmg * log(Mx / pA) >>>> >> > + back_calc[i]= -inv_tcpmg[i] * log(Mx / pA) >>>> >> > >>>> >> > >>>> >> > def r2eff_ns_mmq_2site_sq_dq_zq(M0=None, F_vector=array([1, 0], >>>> >> > float64), m1=None, m2=None, R20A=None, R20B=None, pA=None, pB=None, >>>> >> > dw=None, >>>> >> > dwH=None, k_AB=None, k_BA=None, inv_tcpmg=None, tcp=None, >>>> >> > back_calc=None, >>>> >> > num_points=None, power=None): >>>> >> > @@ -287,4 +287,4 @@ >>>> >> > if Mx <= 0.0 or isNaN(Mx): >>>> >> > back_calc[i] = 1e99 >>>> >> > else: >>>> >> > - back_calc[i] = -inv_tcpmg * log(Mx / pA) >>>> >> > + back_calc[i] = -inv_tcpmg[i] * log(Mx / pA) >>>> >> > >>>> >> > Modified: branches/disp_spin_speed/lib/dispersion/ns_mmq_3site.py >>>> >> > URL: >>>> >> > >>>> >> > http://svn.gna.org/viewcvs/relax/branches/disp_spin_speed/lib/dispersion/ns_mmq_3site.py?rev=23989&r1=23988&r2=23989&view=diff >>>> >> > >>>> >> > >>>> >> > ============================================================================== >>>> >> > --- branches/disp_spin_speed/lib/dispersion/ns_mmq_3site.py >>>> >> > (original) >>>> >> > +++ branches/disp_spin_speed/lib/dispersion/ns_mmq_3site.py Mon >>>> >> > Jun >>>> >> > 16 19:01:36 2014 >>>> >> > @@ -259,7 +259,7 @@ >>>> >> > if Mx <= 0.0 or isNaN(Mx): >>>> >> > back_calc[i] = 1e99 >>>> >> > else: >>>> >> > - back_calc[i]= -inv_tcpmg * log(Mx / pA) >>>> >> > + back_calc[i]= -inv_tcpmg[i] * log(Mx / pA) >>>> >> > >>>> >> > >>>> >> > def r2eff_ns_mmq_3site_sq_dq_zq(M0=None, F_vector=array([1, 0, 0], >>>> >> > float64), m1=None, m2=None, R20A=None, R20B=None, R20C=None, >>>> >> > pA=None, >>>> >> > pB=None, pC=None, dw_AB=None, dw_AC=None, dwH_AB=None, dwH_AC=None, >>>> >> > k_AB=None, k_BA=None, k_BC=None, k_CB=None, k_AC=None, k_CA=None, >>>> >> > inv_tcpmg=None, tcp=None, back_calc=None, num_points=None, >>>> >> > power=None): >>>> >> > @@ -338,4 +338,4 @@ >>>> >> > if Mx <= 0.0 or isNaN(Mx): >>>> >> > back_calc[i] = 1e99 >>>> >> > else: >>>> >> > - back_calc[i] = -inv_tcpmg * log(Mx / pA) >>>> >> > + back_calc[i] = -inv_tcpmg[i] * log(Mx / pA) >>>> >> > >>>> >> > Modified: branches/disp_spin_speed/lib/dispersion/ns_r1rho_2site.py >>>> >> > URL: >>>> >> > >>>> >> > http://svn.gna.org/viewcvs/relax/branches/disp_spin_speed/lib/dispersion/ns_r1rho_2site.py?rev=23989&r1=23988&r2=23989&view=diff >>>> >> > >>>> >> > >>>> >> > ============================================================================== >>>> >> > --- branches/disp_spin_speed/lib/dispersion/ns_r1rho_2site.py >>>> >> > (original) >>>> >> > +++ branches/disp_spin_speed/lib/dispersion/ns_r1rho_2site.py Mon >>>> >> > Jun >>>> >> > 16 19:01:36 2014 >>>> >> > @@ -117,7 +117,7 @@ >>>> >> > M0[2] = cos(theta) # The A state initial Z >>>> >> > magnetisation. >>>> >> > >>>> >> > # This matrix is a propagator that will evolve the >>>> >> > magnetization with the matrix R. >>>> >> > - Rexpo = matrix_exponential(matrix*relax_time) >>>> >> > + Rexpo = matrix_exponential(matrix*relax_time[i]) >>>> >> > >>>> >> > # Magnetization evolution. >>>> >> > MA = dot(M0, dot(Rexpo, M0)) >>>> >> > @@ -126,6 +126,6 @@ >>>> >> > if MA <= 0.0 or isNaN(MA): >>>> >> > back_calc[i] = 1e99 >>>> >> > else: >>>> >> > - back_calc[i]= -inv_relax_time * log(MA) >>>> >> > + back_calc[i]= -inv_relax_time[i] * log(MA) >>>> >> > >>>> >> > >>>> >> > >>>> >> > Modified: branches/disp_spin_speed/lib/dispersion/ns_r1rho_3site.py >>>> >> > URL: >>>> >> > >>>> >> > http://svn.gna.org/viewcvs/relax/branches/disp_spin_speed/lib/dispersion/ns_r1rho_3site.py?rev=23989&r1=23988&r2=23989&view=diff >>>> >> > >>>> >> > >>>> >> > ============================================================================== >>>> >> > --- branches/disp_spin_speed/lib/dispersion/ns_r1rho_3site.py >>>> >> > (original) >>>> >> > +++ branches/disp_spin_speed/lib/dispersion/ns_r1rho_3site.py Mon >>>> >> > Jun >>>> >> > 16 19:01:36 2014 >>>> >> > @@ -146,4 +146,4 @@ >>>> >> > if MA <= 0.0 or isNaN(MA): >>>> >> > back_calc[i] = 1e99 >>>> >> > else: >>>> >> > - back_calc[i]= -inv_relax_time * log(MA) >>>> >> > + back_calc[i]= -inv_relax_time[i] * log(MA) >>>> >> > >>>> >> > >>>> >> > _______________________________________________ >>>> >> > 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

