mailRe: PyMOL is now supported.


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

Header


Content

Posted by Chris MacRaild on October 31, 2006 - 16:41:
On Wed, 2006-11-01 at 02:11 +1100, Edward d'Auvergne wrote:

pymol.cartoon() doesn't work for me. The commands go to pymol (they
appear in the tcl gui at least) but have no apparent effect. Just doing:

hide everything
show cartoon

on the pymol cmd line has the expected effect.

This could be a PyMOL version issue.  Which version are you using?
I'm using the open source v0.99rc6 version (that you have to compile
yourself).  The PyMOL 'cmd.hide()' function also works on the non open
source binary build of the same version.


I've tracked this one down. My PDB file is not in the current working
directory, so path details need to be stripped before the cmd.hide(),
cmd.show() functions. So I have:

relax> pymol.view('test')
relax> PyMOL>reinitialise
Traceback (most recent call last):
  File "/home/chris/bin/pymol/modules/pymol/parser.py", line 370, in
parse
    exec(com2[nest]+"\n",pymol_names,pymol_names)
  File "<string>", line 1, in ?
NameError: name 'reinitialise' is not defined
PyMOL>load ../abp_600MHz_tensorFrame.pdb
 CmdLoad: "../abp_600MHz_tensorFrame.pdb" loaded as
"abp_600MHz_tensorFrame".

This is all good so far... but:

relax> pymol.cartoon('test')
relax> PyMOL>cmd.hide('everything','../abp_600MHz_tensorFrame')
PyMOL>cmd.show('cartoon','../abp_600MHz_tensorFrame')
PyMOL>util.cbss('../abp_600MHz_tensorFrame', 'red', 'yellow', 'green')

fails because there is no such object (in pymol)
as ../abp_600MHz_tensorFrame. It should be 

cmd.hide('everything','abp_600MHz_tensorFrame')
etc.
 

And finally, if I do pymol.tensor_pdb(), then close pymol and then do
pymol.view() in the same run, I get the tensor back again (I was just
expecting to get my protein).

This is a feature.  The PyMOL functions have inherited the command
history feature of the Molmol code.  Any commands generated by relax
are rerun if you reopen PyMOL from relax.  There is the user function
'pymol.clear_history()' which I forgot to mention in the original
email.

Fine. As long as it is run aware. If I have different tensors (or
different structures?) in separate runs but the same relax instance
(full_analysis.py, eg.), I don't want the two getting confused when I
start looking at them. The fact that pymol.clear_history() doesn't take
a run argument suggests that there might be the potential for such
confussion?


Oh, and one last thought. It would be nice to automatically scale the
tensor size for the size of the protein, so we don't have to do
trial-and-error adjustments of the scaling factor. The current fixed
default scaling factor means larger proteins will have smaller tensors
and vice-versa. This is something I could have a go at implimenting if
others think its a godd idea?

The reason I have used a scaling factor is twofold.  Firstly for
comparing two states or systems, you need to have exactly the same
scaling in both analyses.  Secondly the scaling factor should probably
be given with the figure.  The value is important - it is the
diffusion rate per Angstrom within the figure.  I should add this to
the user function docstring.


What I had in mind was a default auto-scaling that can be overiden as
required. ie.

def pdb.create_tensor_pdb(run, file, scaling):
    if scaling == None:
        scaling = autoScale()
    ...

In our experience of using this sort of functionality with tensor, its
most common use is for a quick look to check that the tensor looks
reasonable, rather than for quantitative comparisons. Given this, a
default auto-scaling will give the most commonly desired behaviour with
minimal effort, but can easily be overriden when quantitation is
required.


Chris


Edward





Related Messages


Powered by MHonArc, Updated Tue Oct 31 17:21:43 2006