Follow-up Comment #2, bug #22017 (project relax):
It is somewhere in:
def return_r2eff_arrays(spins=None, spin_ids=None, fields=None,
field_count=None, sim_index=None):
/specific_analyses/relax_disp/data.py
The looping over time points is misbehaving.
Under the looping:
for exp_type, frq, offset, point, ei, mi, oi, di in
loop_exp_frq_offset_point(return_indices=True)
-------------------------
# Loop over the R2eff data.
for exp_type, frq, offset, point, ei, mi, oi, di in
loop_exp_frq_offset_point(return_indices=True):
# Alias the correct spin.
current_spin = spin
if exp_type in [EXP_TYPE_CPMG_PROTON_SQ,
EXP_TYPE_CPMG_PROTON_MQ]:
current_spin = proton
# Add the experiment type.
if exp_type not in exp_types:
exp_types.append(exp_type)
# The key.
key = return_param_key_from_data(exp_type=exp_type, frq=frq,
offset=offset, point=point)
if mi == 0:
fact = 60.83831274541046
else:
fact = 81.11775032721394
# The Larmor frequency for this spin (and that of an attached
proton for the MMQ models) and field strength (in MHz*2pi to speed up the ppm
to rad/s conversion).
if frq != None:
frqs[ei][si][mi] = 2.0 * pi * frq / g1H *
return_gyromagnetic_ratio(spin.isotope) * 1e-6
frqs_H[ei][si][mi] = 2.0 * pi * frq * 1e-6
# Missing data.
if key not in current_spin.r2eff.keys():
values[ei][si][mi][oi].append(0.0)
errors[ei][si][mi][oi].append(1.0)
missing[ei][si][mi][oi].append(1)
continue
else:
missing[ei][si][mi][oi].append(0)
# The values.
if sim_index == None:
values[ei][si][mi][oi].append(current_spin.r2eff[key])
else:
values[ei][si][mi][oi].append(current_spin.r2eff_sim[sim_index][key])
# The errors.
errors[ei][si][mi][oi].append(current_spin.r2eff_err[key])
# The relaxation times.
for id in cdp.spectrum_ids:
# Non-matching data.
if cdp.spectrometer_frq[id] != frq:
continue
if cdp.exp_type[id] != exp_type:
continue
if exp_type in EXP_TYPE_LIST_CPMG:
if id not in cdp.cpmg_frqs.keys() or cdp.cpmg_frqs[id] !=
point:
continue
else:
if id not in cdp.spin_lock_nu1.keys() or
cdp.spin_lock_nu1[id] != point:
continue
# Found.
relax_time = cdp.relax_times[id]
break
# Check the value if already set.
if relax_times[ei][mi] != None:
if relax_times[ei][mi] != relax_time:
raise RelaxError("The relaxation times do not match for
all experiments.")
continue
# Store the time.
relax_times[ei][mi] = relax_time
# Increment the spin index.
si += 1
_______________________________________________________
Reply to this item at:
<http://gna.org/bugs/?22017>
_______________________________________________
Message sent via/by Gna!
http://gna.org/