Hi, Would you be able to attach the script you are using? Setting SEQ_ARGS[6] to the string value of 'N' should not be possible, it needs to be an integer. Could you also post a single line from the file you are reading the protein sequence from? Oh, it would also be useful if you attach a log of the relax print outs (this might be obvious, but "$ relax full_analysis.py > log" will generate the 'log' file which can be attached).
Cheers, Edward On Tue, Feb 10, 2009 at 10:17 PM, Pierre-Yves Savard <[email protected]> wrote: > Hello, > > It seems to work if I both define the name of the spin to 'N' with the > SEQ_ARGS[6] argument (that is including the spin name, here 'N', in the > sequence file) AND add the argument "spin_id='@N'" in the function > strcutre.vector(), part of the section "Diffusion models MII to MV" (see > last line of the following pasted text): > > > > # Diffusion models MII to MV. > ############################# > > elif DIFF_MODEL == 'sphere' or DIFF_MODEL == 'prolate' or > DIFF_MODEL == 'oblate' or DIFF_MODEL == 'ellipsoid': > # Loop until convergence if CONV_LOOP is set, otherwise just > loop once. > # This looping could be made much cleaner by removing the > dependence on the determine_rnd() function. > while 1: > # Determine which round of optimisation to do (init, > round_1, round_2, etc). > self.round = self.determine_rnd(model=DIFF_MODEL) > > # Inital round of optimisation for diffusion models MII > to MV. > if self.round == 0: > # Base directory to place files into. > self.base_dir = DIFF_MODEL + '/init/' > > # Run name. > name = DIFF_MODEL > > # Create the data pipe. > pipe.create(name, 'mf') > > # Load the local tm diffusion model MI results. > results.read(file='results', dir='local_tm/aic') > > # Remove the tm parameter. > model_free.remove_tm() > > # Deselect the spins in the EXCLUDE list. > if EXCLUDE: > deselect.read(file=EXCLUDE) > > # Load the PDB file and calculate the unit vectors > parallel to the XH bond. > if PDB_FILE: > structure.read_pdb(PDB_FILE) > structure.vectors(attached='H', spin_id='@N') > > > However, if the SEQ_ARGS[6] argument is set to None, and, thus, the > following code (you added today) takes care of the spin name: > > > # Name the spins if necessary. > if SEQ_ARGS[6] == None: > spin.name(HET_NAME) > > > the following error message is thrown: > > > Traceback (most recent call last): > File "./full_analysis-prolate.py", line 641, in <module> > Main(self.relax) > File "./full_analysis-prolate.py", line 264, in __init__ > self.multi_model() > File "./full_analysis-prolate.py", line 600, in multi_model > spin.name(HET_NAME) > File "/usr/local/packages/relax-1.3/prompt/spin.py", line 269, in name > raise RelaxStrError, ('new spin name', name) > RelaxStrError: RelaxError: The new spin name argument None must be a string. > > > > > Do you have any clue of what is happening ? > > Thanks > > > Pierre-Yves > > > > > > Pierre-Yves Savard wrote: >> Hi Edward, >> >> Thank you for your quick answer. >> >> I tried with the new script, defining the name of the spin to N with the >> SEQ_ARGS[6] argument, but I still encounter the following error messages >> (which I also get when SEQ_ARGS[6]=None): >> >> >> relax> structure.vectors(attached='H', spin_id=None, model=None, >> verbosity=1, ave=True, unit=True) >> Extracting vectors from the single model. >> Calculating the unit vectors. >> The attached atom is a proton. >> >> Traceback (most recent call last): >> File "/usr/local/packages/relax-1.3/relax", line 418, in <module> >> Relax() >> File "/usr/local/packages/relax-1.3/relax", line 127, in __init__ >> self.interpreter.run(self.script_file) >> File "/usr/local/packages/relax-1.3/prompt/interpreter.py", line 273, >> in run >> return run_script(intro=self.__intro_string, local=self.local, >> script_file=script_file, quit=self.__quit_flag, >> show_script=self.__show_script, raise_relax_error=self.__raise_relax_error) >> File "/usr/local/packages/relax-1.3/prompt/interpreter.py", line 534, >> in run_script >> return console.interact(intro, local, script_file, quit, >> show_script=show_script, raise_relax_error=raise_relax_error) >> File "/usr/local/packages/relax-1.3/prompt/interpreter.py", line 430, >> in interact_script >> execfile(script_file, local) >> File "full_analysis-sphere.py", line 641, in <module> >> Main(self.relax) >> File "full_analysis-sphere.py", line 230, in __init__ >> structure.vectors(attached='H') >> File "/usr/local/packages/relax-1.3/prompt/structure.py", line 586, in >> vectors >> generic_fns.structure.main.vectors(attached=attached, >> spin_id=spin_id, model=model, verbosity=verbosity, ave=ave, unit=unit) >> File "/usr/local/packages/relax-1.3/generic_fns/structure/main.py", >> line 353, in vectors >> warn(RelaxWarning("Either the spin number or name must be set for >> the spin " + `id` + " to identify the corresponding atom in the molecule.")) >> RelaxWarning: Either the spin number or name must be set for the spin >> ':15' to identify the corresponding atom in the molecule. >> >> I checked the pdb and names are fine: >> >> ... >> ATOM 31 N ASN 6 -21.732 2.728 -13.120 1.00 25.52 >> ATOM 32 H ASN 6 -11.923 7.967 -12.183 1.00 0.00 >> ... >> >> >> Thank you, >> >> >> Pierre-Yves >> >> >> >> >> >> >> Edward d'Auvergne wrote: >> >>> Hi, >>> >>> The addition of spin_id='@N' should not be necessary if the sequence >>> data you have loaded using this script has the atom/spin name set to >>> 'N'. If not, I have modified the full_analysis.py script in the >>> repository 1.3 line to name your spins in that way. The problem is >>> that the spins are unnamed so they cannot be matched to anything in >>> the PDB file. Hence the NH bond vectors are not extracted for any >>> spins. Then when it comes to optimisation, all the spins without bond >>> vector information are deselected. But as this is all spins, then >>> there are essentially no model-free models to optimise and there is >>> only the diffusion tensor. But this is fixed by the fix() function, >>> the one you can't fix and can't be fixed. So as the only parameters >>> remaining are those of the diffusion tensor, and these are fixed, >>> relax cannot do anything. There should be warning messages describing >>> this problem much further up in the script. I would guess thought >>> that they have been suppressed by your addition in point one, as there >>> are no spins with a spin id of '@N' and hence no NH bond vectors will >>> be loaded. >>> >>> Regards, >>> >>> Edward >>> >>> >>> On Tue, Feb 10, 2009 at 5:00 PM, Pierre-Yves Savard >>> <[email protected]> wrote: >>> >>> >>>> Hi, >>>> >>>> I am starting a new relax analysis with the full_analysis.py script, >>>> together with relax 1.3 revision 8769. I performed the first step, >>>> 'local_tm', with success. >>>> >>>> However, for what concerns diffusion models 'sphere', 'prolate', 'oblate >>>> and 'ellipsoid', I encountered the following errors: >>>> >>>> 1. I had to add: "spin_id='@N'" in the function structure.vector() >>>> in order to read the pdb and extract vectors properly: >>>> >>>> >>>> # Load the PDB file and calculate the unit vectors parallel to >>>> the XH bond. >>>> if not local_tm and PDB_FILE: >>>> structure.read_pdb(PDB_FILE) >>>> structure.vectors(attached='H', spin_id='@N') >>>> >>>> ... >>>> >>>> # Load the PDB file and calculate the unit vectors parallel to >>>> the XH bond. >>>> if PDB_FILE: >>>> structure.read_pdb(PDB_FILE) >>>> structure.vectors(attached='H', spin_id='@N') >>>> >>>> >>>> 2. Then, I encountered the following error message (using the debug >>>> option -d) when trying to optimise models 'prolate', 'oblate' and >>>> 'ellipsoid': >>>> >>>> Traceback (most recent call last): >>>> File "full_analysis_prolate.py", line 640, in <module> >>>> Main(self.relax) >>>> File "full_analysis_prolate.py", line 267, in __init__ >>>> self.multi_model() >>>> File "full_analysis_prolate.py", line 631, in multi_model >>>> grid_search(inc=GRID_INC) >>>> File "/usr/local/packages/relax-1.3/prompt/minimisation.py", line 156, >>>> in grid_search >>>> minimise.grid_search(lower=lower, upper=upper, inc=inc, >>>> constraints=constraints, verbosity=verbosity) >>>> File "/usr/local/packages/relax-1.3/generic_fns/minimise.py", line >>>> 185, in grid_search >>>> grid_search(lower=lower, upper=upper, inc=inc, >>>> constraints=constraints, verbosity=verbosity) >>>> File >>>> "/usr/local/packages/relax-1.3/specific_fns/model_free/mf_minimise.py", >>>> line 479, in grid_search >>>> self.minimise(min_algor='grid', lower=lower, upper=upper, inc=inc, >>>> constraints=constraints, verbosity=verbosity, sim_index=sim_index) >>>> File >>>> "/usr/local/packages/relax-1.3/specific_fns/model_free/mf_minimise.py", >>>> line 788, in minimise >>>> model_type = self.determine_model_type() >>>> File "/usr/local/packages/relax-1.3/specific_fns/model_free/main.py", >>>> line 1026, in determine_model_type >>>> raise RelaxError, "All parameters are fixed." >>>> RelaxError: RelaxError: All parameters are fixed. >>>> >>>> >>>> There seems to be a problem with the fix() function, although I was not >>>> able to fix (!) it... >>>> >>>> Thank you very much for your help, >>>> >>>> >>>> Pierre-Yves >>>> >>>> _______________________________________________ >>>> relax (http://nmr-relax.com) >>>> >>>> This is the relax-users 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-users >>>> >>>> >>>> >>> >>> >> >> _______________________________________________ >> relax (http://nmr-relax.com) >> >> This is the relax-users 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-users >> >> > _______________________________________________ relax (http://nmr-relax.com) This is the relax-users 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-users

