Hi Edward.

How should I handle the value.write function?

I was thinking of adding w_eff and Delta_omega as parameters, like these
commits:
r22409 - /trunk/specific_analyses/relax_disp/api.py
http://www.mail-archive.com/relax-commits@gna.org/msg20031.html

r22411 - /trunk/specific_analyses/relax_disp/api.py
http://www.mail-archive.com/relax-commits@gna.org/msg20033.html

If I was about to use the value.write function, how should
I initialize a call to the function to calculate theta, Delta_omega?

Best
Troels



2014-03-07 12:26 GMT+01:00 Edward d'Auvergne <edw...@nmr-relax.com>:

> Hi Troels,
>
> One consideration you need to make for the functions of the relax
> library is that these are independent of the relax data store and the
> pipe_control package (used to manipulate the data store) and the
> specific_analyses package.  I.e. you should be able to use all
> functions without the rest of relax, hence it could be distributed
> with other GPL v3+ NMR software.  Here you have used a number of
> pipe_control.mol_res_spin and specific_analyses.relax_disp.disp_data
> functions.  Therefore this indicates that the code would be better
> located in the specific_analyses.relax_disp.disp_data module.  A
> calc_tilt_angle() function in the relax library would essentially need
> to take all its data as arguments (spin-lock field and offset and
> chemical shift) and return the tilt angle.
>
> The other problem is the storing of theta in the spin containers.
> This should not be done as the user can change the(spin-lock field,
> offset, or chemical shift and hence the tilt angle theta will change.
> It is much better to generate theta when needed by the
> relax_disp.plot_disp_curves user function, and then not store it (so
> it is destroyed automatically by Python).  Such non-permanent
> parameters are used extensively throughout relax, especially in the
> N-state or ensemble analysis code.
>
> Regards,
>
> Edward
>
>
> On 7 March 2014 11:42,  <tlin...@nmr-relax.com> wrote:
> > Author: tlinnet
> > Date: Fri Mar  7 11:42:36 2014
> > New Revision: 22427
> >
> > URL: http://svn.gna.org/viewcvs/relax?rev=22427&view=rev
> > Log:
> > Added lib.rotating_frame module containing functions related to rotating
> frame NMR calculations.
> >
> > Regarding sr #3124, (https://gna.org/support/index.php?3124) - Grace
> graphs production for R1rho analysis with R2_eff as function of Omega_eff.
> >
> > Added:
> >     trunk/lib/rotating_frame.py
> >
> > Added: trunk/lib/rotating_frame.py
> > URL:
> http://svn.gna.org/viewcvs/relax/trunk/lib/rotating_frame.py?rev=22427&view=auto
> >
> ==============================================================================
> > --- trunk/lib/rotating_frame.py (added)
> > +++ trunk/lib/rotating_frame.py Fri Mar  7 11:42:36 2014
> > @@ -0,0 +1,77 @@
> >
> +###############################################################################
> > +#
>       #
> > +# Copyright (C) 2014 Troels E. Linnet
>       #
> > +#
>       #
> > +# This file is part of the program relax (http://www.nmr-relax.com).
>        #
> > +#
>       #
> > +# This program is free software: you can redistribute it and/or modify
>        #
> > +# it under the terms of the GNU General Public License as published by
>        #
> > +# the Free Software Foundation, either version 3 of the License, or
>       #
> > +# (at your option) any later version.
>       #
> > +#
>       #
> > +# This program is distributed in the hope that it will be useful,
>       #
> > +# but WITHOUT ANY WARRANTY; without even the implied warranty of
>        #
> > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
>       #
> > +# GNU General Public License for more details.
>        #
> > +#
>       #
> > +# You should have received a copy of the GNU General Public License
>       #
> > +# along with this program.  If not, see <http://www.gnu.org/licenses/>.
>       #
> > +#
>       #
> >
> +###############################################################################
> > +
> > +# Module docstring.
> > +"""Module containing functions related to rotating frame NMR
> calculations."""
> > +
> > +# Python module imports.
> > +from os import sep
> > +
> > +# relax module imports.
> > +from pipe_control.mol_res_spin import find_index, get_spin_ids,
> index_molecule, index_residue, return_spin, spin_loop
> > +from specific_analyses.relax_disp.disp_data import loop_exp_frq_offset,
> return_offset_data, return_param_key_from_data, return_spin_lock_nu1
> > +
> > +def calc_tilt_angle():
> > +    # Get the field count
> > +    field_count = cdp.spectrometer_frq_count
> > +
> > +    # Get the spin_lock_field points
> > +    spin_lock_nu1 = return_spin_lock_nu1(ref_flag=False)
> > +
> > +    # Initialize data containers
> > +    all_spin_ids = get_spin_ids()
> > +
> > +    # Containers for only selected spins
> > +    cur_spin_ids = []
> > +    cur_spins = []
> > +    for curspin_id in all_spin_ids:
> > +        # Get the spin
> > +        curspin = return_spin(curspin_id)
> > +
> > +        # Check if is selected
> > +        if curspin.select == True:
> > +            cur_spin_ids.append(curspin_id)
> > +            cur_spins.append(curspin)
> > +
> > +    # The offset and R1 data.
> > +    chemical_shifts, offsets, tilt_angles =
> return_offset_data(spins=cur_spins, spin_ids=cur_spin_ids,
> field_count=field_count, fields=spin_lock_nu1)
> > +
> > +    # Loop over the index of spins, then exp_type, frq, offset
> > +    print("Printing the following")
> > +    print("exp_type curspin_id frq offset{ppm}
> offsets[ei][si][mi][oi]{rad/s} ei mi oi si di cur_spin.chemical_shift{ppm}
> chemical_shifts[ei][si][mi]{rad/s} spin_lock_nu1{Hz}
> tilt_angles[ei][si][mi][oi]{rad}")
> > +    for si in range(len(cur_spin_ids)):
> > +        theta_spin_dic = dict()
> > +        curspin_id = cur_spin_ids[si]
> > +        cur_spin = cur_spins[si]
> > +        for exp_type, frq, offset, ei, mi, oi in
> loop_exp_frq_offset(return_indices=True):
> > +            # Loop over the dispersion points.
> > +            spin_lock_fields = spin_lock_nu1[ei][mi][oi]
> > +            for di in range(len(spin_lock_fields)):
> > +                print("%-8s %-10s %11.1f %8.4f %12.5f %i  %i  %i  %i
>  %i %7.3f %12.5f %12.5f %12.5f"%(exp_type, curspin_id, frq, offset,
> offsets[ei][si][mi][oi], ei, mi, oi, si, di, cur_spin.chemical_shift,
> chemical_shifts[ei][si][mi], spin_lock_fields[di],
> tilt_angles[ei][si][mi][oi][di]))
> > +                dic_key = return_param_key_from_data(exp_type=exp_type,
> frq=frq, offset=offset, point=spin_lock_fields[di])
> > +                theta_spin_dic["%s"%(dic_key)] =
> tilt_angles[ei][si][mi][oi][di]
> > +        # Store the data
> > +        cur_spin.theta = theta_spin_dic
> > +
> > +    print("\nThe theta data now resides in")
> > +    for curspin, mol_name, res_num, res_name, spin_id in
> spin_loop(full_info=True, return_id=True, skip_desel=True):
> > +        spin_index = find_index(selection=spin_id, global_index=False)
> > +        print("%s cdp.mol[%i].res[%i].spin[%i].theta"%(spin_id,
> spin_index[0], spin_index[1], spin_index[2]))
> >
> >
> > _______________________________________________
> > relax (http://www.nmr-relax.com)
> >
> > This is the relax-commits mailing list
> > relax-comm...@gna.org
> >
> > 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
> relax-devel@gna.org
>
> 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
relax-devel@gna.org

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