Hi Ed,

I tried what you proposed...

========================
from generic_fns.mol_res_spin import spin_loop
pipe.create()
sequence.read()
structure.read_pdb()
structure.vectors()
for spin, spin_id in spin_loop(return_id=True):
    print "%s %s" % (spin_id, spin.xh_vect)
========================

However, there is something quite annoying (but predictable)... If the
sequence used contains residues for which the N-H vector does not exist
(e.g. N-terminal residue, or proline), the spin loop will produce an
error message such as:

========================
for spin, spin_id in spin_loop(return_id=True):
    print "%s %s" % (spin_id, spin.xh_vect)

Traceback (most recent call last):
  File "<console>", line 2, in <module>
AttributeError: 'SpinContainer' object has no attribute 'xh_vect'
========================

Using the function 'deselect_read()' does not solve this problem...

One way to avoid this is to read a sequence not including the spins
without attached spin... However, the ideal would be to have relax
output something like:

========================
:141&:a...@n [ 0.8840636   0.0631474   0.46308093]
:142&:p...@n [ None None None]
...
========================

What do you think ? Is that some bug ?

Maybe, also, we could add a system test and a sample script for this
kind of analysis which could be useful to some people...

Regards,


Sébastien  :)




Edward d'Auvergne wrote:
> Oh, maybe you want the spin loop set up like:
>
> for spin, spin_id in spin_loop(return_id=True):
>     print "%s %s" % (spin_id, spin.xh_vect)
>
> So you know which molecule/residue/atom you are looking at.
>
> Regards,
>
> Edward
>
>
> On Sun, Jan 18, 2009 at 1:26 PM, Edward d'Auvergne <edw...@nmr-relax.com> 
> wrote:
>   
>> Hi,
>>
>> relax already stores all the bond vectors in the spin container, if
>> the ave argument to structure.vectors() is set to False and multiple
>> models are loaded.  There's nothing to dump these values to a file yet
>> though (value.write() I don't think can output lists or vectors), or
>> nothing to really process these vectors.  A script skeleton that could
>> access all these vectors though would be something like:
>>
>> from generic_fns.mol_res_spin import spin_loop
>> pipe.create()
>> structure.read_pdb()
>> structure.vectors()
>> for spin in spin_loop():
>>    print spin.xh_vect
>>
>> This gives you access to the data you require - you just have to set
>> up the arguments correctly and dump the data as you wish.
>>
>> Regards,
>>
>> Edward
>>
>>
>> On Sat, Jan 17, 2009 at 10:33 PM, Sébastien Morin
>> <sebastien.mori...@ulaval.ca> wrote:
>>     
>>> Hi Ed,
>>>
>>> Thanks for the detailed and rapid answer !
>>>
>>> These functionalities would be great ! The use of X-H vectors
>>> orientations spread could be used in cases where several structures are
>>> present to assess flexibility from different structures ! This would
>>> allow a better use of these structures, but also a better
>>> rationalization of NMR dynamics !
>>>
>>> I propose these ideas could be added in the (already quite long) todo
>>> list...  ;)
>>>
>>> As for what will soon be possible within relax, i.e. the possibility for
>>> the spin container to be filled with a list of orientations, how would
>>> you use relax to extract these orientations and output a list for each
>>> spin ? Is there a sample script for doing something like that ? This
>>> would be useful for someone interested in getting the orientations and
>>> analysing them out of relax, until the code is present...  ;)
>>>
>>> Regards,
>>>
>>>
>>> Séb   :)
>>>
>>>
>>>
>>>
>>> Edward d'Auvergne wrote:
>>>       
>>>> Hi,
>>>>
>>>> I'm actually changing that code at the moment.  If you follow my
>>>> commit messages you'll see how this will be handled in relax, very
>>>> soon.  The changes are happening in the multi_structure branch where I
>>>> am introducing the distinction between different models (the same
>>>> molecules but with different conformations) verses different molecules
>>>> within one model.  I'm modifying the structure.vectors() user function
>>>> now, and this is probably the one you are interested in.  Using this
>>>> function, you can extract the vectors from all different models and
>>>> these will be placed in the spin container.  With the 'ave' arg set to
>>>> False, each spin container will have a list of 3D vectors for all
>>>> models.
>>>>
>>>> As for analysing the spread of these vectors and then doing something
>>>> with that, nothing is present in relax.  If you would like to have
>>>> this functionality, a little work will need to be done and a few
>>>> algorithms designed.  The eliminate() user function for deselecting
>>>> spins is close but not quite what you need.  It accepts an arbitrary
>>>> function but is not the correct place for this idea.  Better would be
>>>> something like:
>>>>
>>>> deselect.mobile()
>>>> deselect.structural_noise()
>>>> deselect.vectors()
>>>> deselect.spread_vectors()
>>>>
>>>> with an argument such as (vector_spread_cutoff=0.53), where 0.53 is
>>>> some measure of the spread.  This might be expandable to B-factors.
>>>> If the name deselect.mobile() is used, this could cover a vector
>>>> spread, B-factors, low S2 values, etc.  Oh, with the deselect user
>>>> functions, there should always be a counterpart in the select user
>>>> function class.  This will allow the deselected spins of the first
>>>> analysis to be used in a second with local tm values rather than a
>>>> global diffusion tensor.  Is this what you had in mind?
>>>>
>>>> Regards,
>>>>
>>>> Edward
>>>>
>>>>
>>>> On Thu, Jan 15, 2009 at 4:33 PM, Sébastien Morin
>>>> <sebastien.mori...@ulaval.ca> wrote:
>>>>
>>>>         
>>>>> Hi,
>>>>>
>>>>> We are currently studying a system for which many structures are 
>>>>> available.
>>>>>
>>>>> We thought it would be a great idea to compare X-H (N-H in our case)
>>>>> orientations to spot residues for which the orientation varies  in the
>>>>> different structures, i.e. for which there might be important motions.
>>>>>
>>>>> We thought this could be useful to eliminate such residues with
>>>>> tremendous motions from diffusion tensor optimization and test them as
>>>>> diffusing independently (local tm).
>>>>>
>>>>> Is there a way to do that in relax ?
>>>>>
>>>>> We saw the sample script 'xh_vector_dist.py' which allows one to plot
>>>>> the vector orientations distribution. However, what we would like to get
>>>>> would be a file containing the orientations which could allow us to
>>>>> compare different structures quantitatively on a per residue basis...
>>>>>
>>>>> Thanks for help !
>>>>>
>>>>>
>>>>> Sébastien Morin
>>>>>
>>>>> _______________________________________________
>>>>> relax (http://nmr-relax.com)
>>>>>
>>>>> This is the relax-users mailing list
>>>>> relax-users@gna.org
>>>>>
>>>>> 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@gna.org

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

Reply via email to