Hi Troels,

I can also identify that this commit breaks the GUI tests:

$ relax --gui-tests Relax_fit.test_r1_analysis

You should also check the spelling of 'duplicate'.

Cheers,

Edward


On 11 September 2014 21:31,  <[email protected]> wrote:
> Author: tlinnet
> Date: Thu Sep 11 21:31:46 2014
> New Revision: 25758
>
> URL: http://svn.gna.org/viewcvs/relax?rev=25758&view=rev
> Log:
> Implemented a method to automatically find dublicates of spectrum in 
> exponential fit.
>
> This is to ease the user intervention for error analysis, if this has been 
> forgotten.
>
> Modified:
>     trunk/auto_analyses/relax_fit.py
>
> Modified: trunk/auto_analyses/relax_fit.py
> URL: 
> http://svn.gna.org/viewcvs/relax/trunk/auto_analyses/relax_fit.py?rev=25758&r1=25757&r2=25758&view=diff
> ==============================================================================
> --- trunk/auto_analyses/relax_fit.py    (original)
> +++ trunk/auto_analyses/relax_fit.py    Thu Sep 11 21:31:46 2014
> @@ -24,8 +24,11 @@
>
>  # Python module imports.
>  from os import sep
> +import sys
>
>  # relax module imports.
> +from lib.text.sectioning import section
> +from pipe_control.mol_res_spin import spin_loop
>  from pipe_control.pipes import cdp_name, has_pipe, switch
>  from prompt.interpreter import Interpreter
>  from status import Status; status = Status()
> @@ -104,7 +107,7 @@
>          """Set up and run the curve-fitting."""
>
>          # Peak intensity error analysis.
> -        self.interpreter.spectrum.error_analysis()
> +        self.error_analysis()
>
>          # Set the relaxation curve type.
>          self.interpreter.relax_fit.select_model('exp')
> @@ -147,6 +150,78 @@
>          self.interpreter.state.save(state=self.file_root+'.save', 
> dir=self.results_dir, force=True)
>
>
> +    def error_analysis(self):
> +        """Perform an error analysis of the peak intensities."""
> +
> +        # Printout.
> +        section(file=sys.stdout, text="Error analysis", prespace=2)
> +
> +        # Check if intensity errors have already been calculated by the user.
> +        precalc = True
> +        for spin in spin_loop(skip_desel=True):
> +            # No structure.
> +            if not hasattr(spin, 'peak_intensity_err'):
> +                precalc = False
> +                break
> +
> +            # Determine if a spectrum ID is missing from the list.
> +            for id in cdp.spectrum_ids:
> +                if id not in spin.peak_intensity_err:
> +                    precalc = False
> +                    break
> +
> +        # Skip.
> +        if precalc:
> +            print("Skipping the error analysis as it has already been 
> performed.")
> +            return
> +
> +        # Check if there is replicates, and the user has not specified them.
> +        if not hasattr(cdp, 'replicates'):
> +            # Has dublicates
> +            has_dub = False
> +
> +            # Collect all times, and matching spectrum id.
> +            all_times = []
> +            all_id = []
> +            for s_id, time in cdp.relax_times.iteritems():
> +                all_times.append(time)
> +                all_id.append(s_id)
> +
> +            # Get the dublicates.
> +            dublicates = map(lambda val: (val, [i for i in 
> xrange(len(all_times)) if all_times[i] == val]), all_times)
> +
> +            # Loop over the list of the mapping of times and duplications.
> +            list_dub_mapping = []
> +            for i, dub in enumerate(dublicates):
> +                # Get current spectum id.
> +                cur_spectrum_id = all_id[i]
> +
> +                # Get the tuple of time and indexes of duplications.
> +                time, list_index_occur = dub
> +
> +                # Collect mapping of index to id.
> +                id_list = []
> +                if len(list_index_occur) > 1:
> +                    # There exist dublications.
> +                    has_dub = True
> +
> +                    for list_index in list_index_occur:
> +                        id_list.append(all_id[list_index])
> +
> +                # Store to list
> +                list_dub_mapping.append((cur_spectrum_id, id_list))
> +
> +        # If there is dublication, then assign them.
> +        if has_dub:
> +            # Assign dublicates.
> +            for spectrum_id, dub_pair in list_dub_mapping:
> +                if len(dub_pair) > 0:
> +                    
> self.interpreter.spectrum.replicated(spectrum_ids=dub_pair)
> +
> +        # Run the error analysis.
> +        self.interpreter.spectrum.error_analysis()
> +
> +
>      def check_vars(self):
>          """Check that the user has set the variables correctly."""
>
>
>
> _______________________________________________
> 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

Reply via email to