Hi Michael, I just tested this change, but unfortunately it does not solve bug #17317 (https://gna.org/bugs/index.php?17317). We will need to find a different solution to this :S I would suggest reverting this change, and then trying to find another solution. I'm looking into this now to terminate threads cleanly. To trigger the problem, attempt a model-free analysis and exit at different points during execution. Sometimes it exists cleanly. At other times, errors are thrown. Some examples are given below, as you'll see it's very messy. Regards, Edward ### Example 1 ### [edward@localhost relax_gui]$ /data/relax/branches/bieri_gui/relax -g Thank you for citing: relaxGUI ======== Bieri, M., d'Auvergne, E. J. and Gooley, P. R. (2010). relaxGUI: a new software for fast and simple NMR relaxation data analysis and calculation of ps-ns and micro-s motion of proteins (submitted). relax ===== d'Auvergne, E. J. and Gooley, P. R. (2008). Optimisation of NMR dynamic models I. Minimisation algorithms and their performance within the model-free and Brownian rotational diffusion spaces. J. Biomol. NMR, 40(2), 107-119 (http://dx.doi.org/10.1007/s10858-007-9214-2). d'Auvergne, E. J. and Gooley, P. R. (2008). Optimisation of NMR dynamic models II. A new methodology for the dual optimisation of the model-free parameters and the Brownian rotational diffusion tensor. J. Biomol. NMR, 40(2), 121-133 (http://dx.doi.org/10.1007/s10858-007-9213-3). Unhandled exception in thread started by <bound method Auto_model_free.execute_thread of <gui_bieri.analyses.auto_model_free.Auto_model_free instance at 0x7f4943291d88>> [edward@localhost relax_gui]$ ### Example 2 ### [edward@localhost relax_gui]$ /data/relax/branches/bieri_gui/relax -g Thank you for citing: relaxGUI ======== Bieri, M., d'Auvergne, E. J. and Gooley, P. R. (2010). relaxGUI: a new software for fast and simple NMR relaxation data analysis and calculation of ps-ns and micro-s motion of proteins (submitted). relax ===== d'Auvergne, E. J. and Gooley, P. R. (2008). Optimisation of NMR dynamic models I. Minimisation algorithms and their performance within the model-free and Brownian rotational diffusion spaces. J. Biomol. NMR, 40(2), 107-119 (http://dx.doi.org/10.1007/s10858-007-9214-2). d'Auvergne, E. J. and Gooley, P. R. (2008). Optimisation of NMR dynamic models II. A new methodology for the dual optimisation of the model-free parameters and the Brownian rotational diffusion tensor. J. Biomol. NMR, 40(2), 121-133 (http://dx.doi.org/10.1007/s10858-007-9213-3). Unhandled exception in thread started by Traceback (most recent call last): File "/data/relax/branches/bieri_gui/gui_bieri/analyses/auto_model_free.py", line 871, in execute_thread dAuvergne_protocol(save_dir=data.save_dir, diff_model=global_model, mf_models=data.mf_models, local_tm_models=data.local_tm_models, pdb_file=data.structure_file, seq_args=data.seq_args, het_name=data.het_name, relax_data=data.relax_data, unres=data.unres, exclude=data.exclude, bond_length=data.bond_length, csa=data.csa, hetnuc=data.hetnuc, proton=data.proton, grid_inc=data.inc, min_algor=data.min_algor, mc_num=data.mc_num, max_iter=data.max_iter, conv_loop=data.conv_loop) File "/data/relax/branches/bieri_gui/auto_analyses/dauvergne_protocol.py", line 282, in __init__ self.multi_model(local_tm=True) File "/data/relax/branches/bieri_gui/auto_analyses/dauvergne_protocol.py", line 842, in multi_model self.interpreter.relax_data.read(ri_label=data[0], frq_label=data[1], frq=data[2], file=data[3], dir=data[4], mol_name_col=data[5], res_num_col=data[6], res_name_col=data[7], spin_num_col=data[8], spin_name_col=data[9], data_col=data[10], error_col=data[11], sep=data[12]) File "/data/relax/branches/bieri_gui/prompt/relax_data.py", line 319, in read relax_data.read(ri_label=ri_label, frq_label=frq_label, frq=frq, file=file, dir=dir, spin_id_col=spin_id_col, mol_name_col=mol_name_col, res_num_col=res_num_col, res_name_col=res_name_col, spin_num_col=spin_num_col, spin_name_col=spin_name_col, data_col=data_col, error_col=error_col, sep=sep, spin_id=spin_id) File "/data/relax/branches/bieri_gui/generic_fns/relax_data.py", line 660, in read pack_data(ri_label, frq_label, frq, values, errors, ids) File "/data/relax/branches/bieri_gui/generic_fns/relax_data.py", line 570, in pack_data spin = return_spin(id) File "/data/relax/branches/bieri_gui/generic_fns/mol_res_spin.py", line 1910, in return_spin if (mol, res, spin) not in select_obj[i]: File "/data/relax/branches/bieri_gui/generic_fns/mol_res_spin.py", line 147, in __contains__ return (obj in self._intersect[0]) and (obj in self._intersect[1]) File "/data/relax/branches/bieri_gui/generic_fns/mol_res_spin.py", line 155, in __contains__ return self.__contains_mol_res_spin_containers(obj) File "/data/relax/branches/bieri_gui/generic_fns/mol_res_spin.py", line 240, in __contains_mol_res_spin_containers elif relax_re.search(self.residues, res.name) or res.num in self.residues: File "/data/relax/branches/bieri_gui/generic_fns/relax_re.py", line 75, in search pattern_re = replace(pattern, '*', '.*') TypeError: 'NoneType' object is not callable [edward@localhost relax_gui]$ ### Example 3 ### [edward@localhost relax_gui]$ /data/relax/branches/bieri_gui/relax -g Searching through 11 grid nodes. k: 0 xk: [ 1000] fk: 10173.3877242 k: 3 xk: [ 4300] fk: 7779.43338854 k: 4 xk: [ 5400] fk: 5092.82647948 k: 5 xk: [ 6500] fk: 3214.5918094 k: 6 xk: [ 7600] fk: 1967.6701103 k: 7 xk: [ 8700] fk: 1157.37203626 k: 8 xk: [ 9800] fk: 641.974121519 k: 9 xk: [ 10900] fk: 327.772091917 k: 10 xk: [ 12000] fk: 154.295417958 Thank you for citing: relaxGUI ======== Bieri, M., d'Auvergne, E. J. and Gooley, P. R. (2010). relaxGUI: a new software for fast and simple NMR relaxation data analysis and calculation of ps-ns and micro-s motion of proteins (submitted). relax ===== d'Auvergne, E. J. and Gooley, P. R. (2008). Optimisation of NMR dynamic models I. Minimisation algorithms and their performance within the model-free and Brownian rotational diffusion spaces. J. Biomol. NMR, 40(2), 107-119 (http://dx.doi.org/10.1007/s10858-007-9214-2). d'Auvergne, E. J. and Gooley, P. R. (2008). Optimisation of NMR dynamic models II. A new methodology for the dual optimisation of the model-free parameters and the Brownian rotational diffusion tensor. J. Biomol. NMR, 40(2), 121-133 (http://dx.doi.org/10.1007/s10858-007-9213-3). Fitting to spin ':149&:thr@N' ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Unhandled exception in thread started by Traceback (most recent call last): File "/data/relax/branches/bieri_gui/gui_bieri/analyses/auto_model_free.py", line 871, in execute_thread dAuvergne_protocol(save_dir=data.save_dir, diff_model=global_model, mf_models=data.mf_models, local_tm_models=data.local_tm_models, pdb_file=data.structure_file, seq_args=data.seq_args, het_name=data.het_name, relax_data=data.relax_data, unres=data.unres, exclude=data.exclude, bond_length=data.bond_length, csa=data.csa, hetnuc=data.hetnuc, proton=data.proton, grid_inc=data.inc, min_algor=data.min_algor, mc_num=data.mc_num, max_iter=data.max_iter, conv_loop=data.conv_loop) File "/data/relax/branches/bieri_gui/auto_analyses/dauvergne_protocol.py", line 282, in __init__ self.multi_model(local_tm=True) File "/data/relax/branches/bieri_gui/auto_analyses/dauvergne_protocol.py", line 866, in multi_model self.interpreter.grid_search(inc=self.grid_inc) File "/data/relax/branches/bieri_gui/prompt/minimisation.py", line 106, in grid_search minimise.grid_search(lower=lower, upper=upper, inc=inc, constraints=constraints, verbosity=verbosity) File "/data/relax/branches/bieri_gui/generic_fns/minimise.py", line 133, in grid_search grid_search(lower=lower, upper=upper, inc=inc, constraints=constraints, verbosity=verbosity) File "/data/relax/branches/bieri_gui/specific_fns/model_free/mf_minimise.py", line 1174, in grid_search self.minimise(min_algor='grid', lower=lower, upper=upper, inc=inc, constraints=constraints, verbosity=verbosity, sim_index=sim_index) File "/data/relax/branches/bieri_gui/specific_fns/model_free/mf_minimise.py", line 1382, in minimise param_vector = self._assemble_param_vector(spin=spin, sim_index=sim_index) File "/data/relax/branches/bieri_gui/specific_fns/model_free/main.py", line 182, in _assemble_param_vector model_type = self._determine_model_type() File "/data/relax/branches/bieri_gui/specific_fns/model_free/main.py", line 688, in _determine_model_type if not exists_mol_res_spin_data(): File "/data/relax/branches/bieri_gui/generic_fns/mol_res_spin.py", line 1211, in exists_mol_res_spin_data if dp.mol.is_empty(): File "/data/relax/branches/bieri_gui/data/mol_res_spin.py", line 639, in is_empty if len(self) == 1 and self[0].is_empty(): File "/data/relax/branches/bieri_gui/data/mol_res_spin.py", line 572, in is_empty if match("^__", name): TypeError: 'NoneType' object is not callable On 15 December 2010 00:56, <michael.bieri@xxxxxxxxxxxxx> wrote:
Author: michaelbieri Date: Wed Dec 15 00:56:30 2010 New Revision: 11822 URL: http://svn.gna.org/viewcvs/relax?rev=11822&view=rev Log: relaxGUI job is killed upon exiting the program. This is to completely kill running threads, which can't be controlled under Python. The error was detected by Edward d'Auvergne reported at https://gna.org/bugs/index.php?17317. Modified: branches/bieri_gui/gui_bieri/relax_gui.py Modified: branches/bieri_gui/gui_bieri/relax_gui.py URL: http://svn.gna.org/viewcvs/relax/branches/bieri_gui/gui_bieri/relax_gui.py?rev=11822&r1=11821&r2=11822&view=diff ============================================================================== --- branches/bieri_gui/gui_bieri/relax_gui.py (original) +++ branches/bieri_gui/gui_bieri/relax_gui.py Wed Dec 15 00:56:30 2010 @@ -362,16 +362,8 @@ text = text + '\n' sys.__stdout__.write(text) - # Destroy all dialogs. - self.controller.Destroy() - self.dialog_about_gui.Destroy() - self.dialog_about_relax.Destroy() - self.relax_prompt.Destroy() - self.mol_res_spin_tree.Destroy() - self.user_functions.destroy() - - # Destroy the main window. - self.Destroy() + # End application. + sys.exit() def import_seq(self, event): _______________________________________________ relax (http://nmr-relax.com) This is the relax-commits mailing list relax-commits@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-commits