mailRe: full_analysys problem: 'All parameters are fixed'


Others Months | Index by Date | Thread Index
>>   [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Header


Content

Posted by Pierre-Yves Savard on February 10, 2009 - 22:17:
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
<Pierre-Yves.Savard@xxxxxxxxxxxxx> 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
relax-users@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-users

    
      
  
    

_______________________________________________
relax (http://nmr-relax.com)

This is the relax-users mailing list
relax-users@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-users

  



Related Messages


Powered by MHonArc, Updated Tue Feb 10 23:20:14 2009