Author: semor Date: Thu Jan 8 17:48:13 2009 New Revision: 8339 URL: http://svn.gna.org/viewcvs/relax?rev=8339&view=rev Log: Added the user function cpmg_delayT() which allows setting the CPMG constant time delay T used for the analysed dataset. This follows a post at: https://mail.gna.org/public/relax-devel/2009-01/msg00027.html (Message-id: <496583C7.6050607@xxxxxxxxx>) Modified: branches/relax_disp/prompt/relax_disp.py branches/relax_disp/specific_fns/relax_disp.py branches/relax_disp/test_suite/system_tests/scripts/relax_disp_cpmg_fast.py Modified: branches/relax_disp/prompt/relax_disp.py URL: http://svn.gna.org/viewcvs/relax/branches/relax_disp/prompt/relax_disp.py?rev=8339&r1=8338&r2=8339&view=diff ============================================================================== --- branches/relax_disp/prompt/relax_disp.py (original) +++ branches/relax_disp/prompt/relax_disp.py Thu Jan 8 17:48:13 2009 @@ -45,6 +45,42 @@ # Place relax in the class namespace. self.__relax__ = relax + + + def cpmg_delayT(self, id=None, delayT=None): + """Set the CPMG constant time delay (T) of the experiment. + + Keyword arguments + ~~~~~~~~~~~~~~~~~ + + id: The experiment identification string. + + delayT: The CPMG constant time delay (T) in s. + + + Description + ~~~~~~~~~~~ + + This user function allows the CPMG constant time delay (T) of a given experiment to be set. + """ + + # Function intro text. + if self.__relax__.interpreter.intro: + text = sys.ps3 + "delayT(" + text = text + "id=" + `id` + text = text + ", delayT=" + `delayT` + ")" + print text + + # Id string. + if type(id) != str: + raise RelaxStrError, ('experiment identification string', id) + + # The CPMG constant time delay (T). + if type(delayT) != float and type(delayT) != int: + raise RelaxNumError, ('CPMG constant time delay (T)', delayT) + + # Execute the functional code. + specific_fns.relax_disp.cpmg_delayT(id=id, delayT=delayT) def exp_type(self, exp='cpmg'): Modified: branches/relax_disp/specific_fns/relax_disp.py URL: http://svn.gna.org/viewcvs/relax/branches/relax_disp/specific_fns/relax_disp.py?rev=8339&r1=8338&r2=8339&view=diff ============================================================================== --- branches/relax_disp/specific_fns/relax_disp.py (original) +++ branches/relax_disp/specific_fns/relax_disp.py Thu Jan 8 17:48:13 2009 @@ -205,6 +205,41 @@ # Add the frequency at the correct position. cdp.cpmg_frqs[index] = frq + + + def cpmg_delayT(id=None, delayT=None): + """Set the CPMG constant time delay (T) of the experiment. + + @keyword id: The experimental identification string (allowing for multiple experiments + per data pipe). + @type id: str + @keyword delayT: The CPMG constant time delay (T) in s. + @type delayT: float + """ + + # Function intro text. + if self.__relax__.interpreter.intro: + text = sys.ps3 + "delayT(" + text = text + "id=" + `id` + text = text + ", delayT=" + `delayT` + ")" + print text + + # Test if the current data pipe exists. + pipes.test() + + # Alias the current data pipe. + cdp = pipes.get_pipe() + + # Set up the dictionnary data structure if it doesn't exist yet. + if not hasattr(cdp, 'delayT'): + cdp.delayT = {} + + # Test the CPMG constant time delay (T) has not already been set. + if cdp.delayT.has_key(id): + raise RelaxError, "The CPMG constant time delay (T) for the experiment " + `id` + " has already been set." + + # Set the CPMG constant time delay (T). + cdp.delayT[id] = delayT def create_mc_data(self, spin_id): Modified: branches/relax_disp/test_suite/system_tests/scripts/relax_disp_cpmg_fast.py URL: http://svn.gna.org/viewcvs/relax/branches/relax_disp/test_suite/system_tests/scripts/relax_disp_cpmg_fast.py?rev=8339&r1=8338&r2=8339&view=diff ============================================================================== --- branches/relax_disp/test_suite/system_tests/scripts/relax_disp_cpmg_fast.py (original) +++ branches/relax_disp/test_suite/system_tests/scripts/relax_disp_cpmg_fast.py Thu Jan 8 17:48:13 2009 @@ -22,6 +22,9 @@ # Relaxation dispersion magnetic field (in Hz). frq.set(id='600', frq=600.0 * 1e6) + +# Relaxation dispersion CPMG constant time delay T (in s). +cpmg_delayT(id='600', delayT=0.020) # Relaxation dispersion CPMG frequencies (in Hz). cpmg_frq = [