RE: [PyMOL] RNA and Pseudo-atom Models

2002-03-01 Thread Albion Baucom
On Thu, 28 Feb 2002, DeLano, Warren wrote:

> Nice to hear from you Albion, glad to see you're finally getting a
> chance to try the package.

Yes, it looks to be my answer to movie making if I can get it to read my
model files!

> Great -- PyMOL should be up to the task provided that you've got a fast
> machine with tons of RAM.

Dual 800MHz G4 with 1.5GB of RAM. That is the best I can do for now. 

> > Ideally I would like to move seperate objects 
> > in the view
> > separeately, that is have things "dock" in the movies. I dont know if
> > PyMol will do this yet ...
> 
> Yes, it can do this using the translate, origin, and rotate commands.
> Unfortunately the docs are incomplete, so I recommend you take a look at
> the Python code in modules/pymol/editing.py (rotate, translate) and
> viewing.py (origin) for the specific calling conventions.  

OK.

> def rotate(axis='x',angle=0.0,selection="all",
>state=0,camera=1,object=None):
> def translate(vector=[0.0,0.0,0.0],selection="all",
>   state=0,camera=1,object=None):
> def origin(selection="(all)",object=None,position=None):
> 
> Here's a key bit of information for these commands:  If you pass the
> object name using 'object=...', then you'll translate the entire object
> matrix.  If instead you pass in a selection with object still equal to
> NULL, then you'll translate the atom coordinates within the object.  

OK, does that mean one is non-reversable (coordinates change), and one
that is (only the object translates, original coordinates remain)?
 
> > Now, the rRNA I have is phosphorus atom only, with some 
> > allatom proteins
> > some CA-only proteins.
> 
> Ugh -- this is something PyMOL doesn't yet handle well, and you're the
> third person to draw my attention to this in the last couple weeks!

Yah, this has been the one thing making me stick with Mike Carson's
Ribbons. It handles these models like no other program (and RNA at all for
that matter!). I am convinced your program could serve me better if I
could get it to read those pseudo-atoms.

> There is no bond definition file (yet -- this will be changed in the
> future).  Except for HETATMS, PyMOL connects atoms based on proximity,
> not dictionary lookups.  The quick-and-dirty solution is to add explicit
> CONECT records for the atoms into the PDB file for the phosphates.

OK, that is a start.
  
> Nope, PyMOL won't be fooled by such trickery.  It will only draw ribbons
> between phosphates separated by six bonds (i.e. in real nucleic acids).
> Minor code changes will be required to accomplish what you're looking
> for. You might be able to comment-out the line in RepCartoon.c, but I
> haven't tested the idea. 
> 
> Look for:
>   if(!ObjectMoleculeCheckBondSep(obj,a1,a2,6))...

OK.
 
> > My only workaround ideas now are to take the pseudo-atom 
> > model, use CNS
> > (generate.inp) to build in the rest of the bases, use that to generate
> > the cartoon, and undisplay the stick representation (which of 
> > course will
> > have completely bogus conformations). Im not sure what biases 
> > the built in
> > bases will impose on the cartoon if PyMol uses them to interpolate the
> > ribbon.
> 
> Unfortunately for now you'll have to provide full coordinates in order
> to get ribbons.  This is probably a decent way to go.

Yah, to generate the intervening atoms and then undisplay them at render
time. I will try the above code changes and the workaround and compare the
results.
 
> > At some point I would like to draw pseudo-bonds between base-paired
> > pseudo-atoms, but I will see if I can do the above before that.
> 
> Such bonds can be drawn using the dist command.

OK. But these are distance representations, not true bonds right? How
about primitives using a precompiled object file to simulate the bonds?
Could I mix the PDB and object files in the same scene?

Also, I have breaks in the cartoon at modified base-pairs, particularly
with tRNA's. Is there way to remedy this without swapping for standard
bases? Again, I am plan only to render the cartoon with pseudo-basepair
bonds in the final scene, so the all atom stick representation is
irrelevant. I can use MidasPlus and "swapna" to replace the offending
bases, but Im not sure that is necessary.

Thanks a lot!

Albion

Albion E. Baucom
http://www.cse.ucsc.edu/~baucom




RE: [PyMOL] RNA and Pseudo-atom Models

2002-02-28 Thread DeLano, Warren
Busy day on the list : ) I'll take this one...

> From: Albion Baucom [mailto:bau...@biology.ucsc.edu]

Nice to hear from you Albion, glad to see you're finally getting a
chance to try the package.

> I want to make high resolution, smooth (high frame rate) 
> playing movies of
> the Ribosome. 

Great -- PyMOL should be up to the task provided that you've got a fast
machine with tons of RAM.

> Ideally I would like to move seperate objects 
> in the view
> separeately, that is have things "dock" in the movies. I dont know if
> PyMol will do this yet ...

Yes, it can do this using the translate, origin, and rotate commands.
Unfortunately the docs are incomplete, so I recommend you take a look at
the Python code in modules/pymol/editing.py (rotate, translate) and
viewing.py (origin) for the specific calling conventions.  

def rotate(axis='x',angle=0.0,selection="all",
   state=0,camera=1,object=None):
def translate(vector=[0.0,0.0,0.0],selection="all",
  state=0,camera=1,object=None):
def origin(selection="(all)",object=None,position=None):

Here's a key bit of information for these commands:  If you pass the
object name using 'object=...', then you'll translate the entire object
matrix.  If instead you pass in a selection with object still equal to
NULL, then you'll translate the atom coordinates within the object.  

This functionality is still primitive, but I think it will do the
job...play around with them for a while, see if you can get them to do
what you need.

> Now, the rRNA I have is phosphorus atom only, with some 
> allatom proteins
> some CA-only proteins.

Ugh -- this is something PyMOL doesn't yet handle well, and you're the
third person to draw my attention to this in the last couple weeks!
 
> PyMol opens the psueudo-atom rRNA as a cloud of atoms, 
> presumably because
> it does not know how to bond these files. That is my first 
> question. How,
> and what do I modify (bond definition file) to make it bond 
> the adjacent
> atoms of the phosphorus only backbone? 

There is no bond definition file (yet -- this will be changed in the
future).  Except for HETATMS, PyMOL connects atoms based on proximity,
not dictionary lookups.  The quick-and-dirty solution is to add explicit
CONECT records for the atoms into the PDB file for the phosphates.
 
> My second question for now is once I bond it, will Pymol be 
> able to render
> a cartoon using the P atoms to interpolate?

Nope, PyMOL won't be fooled by such trickery.  It will only draw ribbons
between phosphates separated by six bonds (i.e. in real nucleic acids).
Minor code changes will be required to accomplish what you're looking
for. You might be able to comment-out the line in RepCartoon.c, but I
haven't tested the idea. 

Look for:
  if(!ObjectMoleculeCheckBondSep(obj,a1,a2,6))...

> My only workaround ideas now are to take the pseudo-atom 
> model, use CNS
> (generate.inp) to build in the rest of the bases, use that to generate
> the cartoon, and undisplay the stick representation (which of 
> course will
> have completely bogus conformations). Im not sure what biases 
> the built in
> bases will impose on the cartoon if PyMol uses them to interpolate the
> ribbon.

Unfortunately for now you'll have to provide full coordinates in order
to get ribbons.  This is probably a decent way to go.

> At some point I would like to draw pseudo-bonds between base-paired
> pseudo-atoms, but I will see if I can do the above before that.

Such bonds can be drawn using the dist command.

Cheers,
Warren