Dear Edward. Thank you for your valuable input. The main reason for my interest in storing these data, are for inspection, inspection, inspection. :-) I have tried to perform an analysis of a R1rho dataset, but the familiarity with the outcome of the standard curves is limited. With R1rho as function of spin-lock field strength (and looping over offset), the curves are skewed, but I don't know if that is expected. If R1rho could be plotted as function of theta (and looping over offset), I would be expecting to see 6 bell-curves. If I could see these bell-shapes, I would be more assured, that my input data is correct. And if I could plot R2_eff as function of Omega_eff, I would be able to directly compare to articles. These two types of graphs, would normally be our very first inspection that the input data is correct. :-) Or else I would need to inspect the data input. ----------------------------- There would be some obvious errors for this: - My user error input in either: 1) relax_disp.spin_lock_field 2) relax_disp.spin_lock_offset 3) relax_disp.relax_time - Some horrible mistake in organizing my data Murphy's law could be at play here. A thing I have to check, if the above inspection does not come out with an obvious explanation. ----------------------------- A desired functionality, would be to implement a user function. Maybe - relax_disp.return_offset_data - relax_data.return_offset_data or add the functionality to - relax_data.back_calc The user function should create parameters as a dictionary: The dictionary keys could be the same as r2eff cdp.mol[0].res[7].spin[0].r2eff {'r1rho_799.77739910_118.078_800.500': 9.84888500988483, 'r1rho_799.77739910_142.754_1341.110': 4.9805363953113471, 'r1rho_799.77739910_130.416_1341.110': 9.1530088665806915, 'r1rho_799.77739910_130.416_800.500': 7.3650924682616958, 'r1rho_799.77739910_118.078_984.000': 9.9513756586716013, 'r1rho_799.77739910_118.078_651.200': 9.4610010912607088, 'r1rho_799.77739910_241.459_1341.110': 1.2925550460815427, 'r1rho_799.77739910_118.078_431.000': 8.0090052925282862, 'r1rho_799.77739910_118.078_1648.500': 10.202945137023924, 'r1rho_799.77739910_179.768_1341.110': 1.8836588047273142, 'r1rho_799.77739910_118.078_1341.110': 10.31096739492439, 'r1rho_799.77739910_130.416_1648.500': 9.3622346598033772, 'r1rho_799.77739910_124.247_1341.110': 10.835446929931628, 'r1rho_799.77739910_142.754_800.500': 3.1304734741765006} And the writing out of the values could be: value.write(param='r2eff', file='r2eff.out', dir=None, scaling=1.0, comment=None, bc=False, force=False) value.write(param='theta', file='theta.out', dir=None, scaling=1.0, comment=None, bc=False, force=False) For generating plots, grace.write will complain with: grace.write(x_data_type='spin_lock_nu1', y_data_type='r2eff', spin_id=':13@N', plot_data='value', file='/sbinlab2/tlinnet/test/test.agr', dir=None, force=True, norm=False) raise RelaxError("The series data %s does not have the same number of elements as %s." % (x_val, y_val)) Therefore the relax_disp.plot_disp_curves should be able to chose between, taking x and y arguments as: y : r2eff, r1rho x : spin_lock strength, theta, Omega_eff If theta, Omega_eff does not exists, it should call the above user function to create the data. In essence: - The possibility to create the data, and inspect in the spin container - The possibility to write these values out, (so they also could be plotted elsewhere) - The possibility to write grace files, with the user function relax_disp.plot_disp_curves My problem now is to figure out how to plan this. - Should I add parameters to relax ? Done for: Revision 22408, 22409, 22411 Or is this not necessary? Best Troels 2014-03-06 8:59 GMT+01:00 Edward d'Auvergne <edward@xxxxxxxxxxxxx>:
Hi Troels, I've been thinking about the problem a bit deeper, and I am now wondering if the flip angle theta and the omega_eff values actually need to be stored at all. It sounds like their intended use is for generating the X values for 2D Grace plots. Do you have another purpose in mind? If this is the only purpose, then there is no need to store these values. The functions of the specific_analyses.relax_disp.disp_data can generate these on demand. The return_offset_data() function can create the data at any time. The structure of the dispersion variables in the data pipes has been made as simple as possible, with all secondary parameters and values calculated from the base values. But these secondary parameters are never stored. One main reason is because a user will often go back and modify/fix one of the base values (they may have incorrectly typed/calculated the offset value). And there is no mechanism to update the secondary parameters when the base parameter, that is depends on, has been modified. For the Grace graphs of the relax_disp.plot_disp_data user function, all you need is to call the return_offset_data() function within the plot_disp_curves() function of the same module, and then place the appropriate values along the X-axis. Then when the function finishes, all the data structures are automatically deleted by the Python interpreter. Regards, Edward _______________________________________________ relax (http://www.nmr-relax.com) This is the relax-devel mailing list relax-devel@xxxxxxx 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