[chimera-dev] (no subject)

Eric Pettersen pett at cgl.ucsf.edu
Tue Jan 19 11:51:33 PST 2010


On Jan 19, 2010, at 9:20 AM, Mojie Duan wrote:
> Dear Chimera Developers,
>
> I needs to calculate the inter-helical angle for thousands of  
> conformations.  We know Chimera can calculate the inter-helical  
> angle for one conformation.  We are wondering if Chimera can  
> calculate the inter-helical angle for all these conformations at one  
> time? or would you please point out how to write a script to do this?

Hi Mojie,
	In the current daily build there is a new command named "define" that  
allows you to define axes (and planes) from the command line.  The  
"distance" and "angle" commands have been enhanced to accept "object  
IDs" (which is what "define" defines) to allow measurements between  
axes/planes/atoms.  The documentation for the define command and the  
enhanced angle command are here (and are in the daily build as well):

http://www.cgl.ucsf.edu/chimera/docs/UsersGuide/midas/define.html
http://www.cgl.ucsf.edu/chimera/docs/UsersGuide/midas/angle.html

	So, one approach would be for you to build a script that generally  
goes like this:

open noprefs (conformation 1)
sel (residues in first helix) & backbone.minimal
define axis [options you want] number 1
sel (residues in second helix) & backbone.minimal
define axis [options] number 2
angle a1 a2
close all
open noprefs (conformation 2)
etc.

When the script is finished all the angles will be in the reply log.   
Obviously you wouldn't write this script by hand, but instead would  
use any programming language you are familiar with to generate it.   
The 'noprefs' keyword to 'open' will speed things up since then  
Chimera will skip all the fancy computations it does to show the  
initial "smart" representation with various side chains hidden,  
backbone ribboned, etc.
	Alternatively, you could write a Chimera Python script which could do  
the looping directly.  Assuming that you already had all the  
structures open in Chimera, a script something like this:

from chimera import openModels, Molecule, runCommand
for m in openModels.list(modelTypes=[Molecule]):
	runCommand("sel %s:(residue range of first helix).(chain ID) &  
backbone.minimal" % m.oslIdent())
	runCommand("define axis [options] number 1")
	runCommand("sel %s:(residue range of second helix).(chain ID) &  
backbone.minimal" % m.oslIdent())
	runCommand("define axis [options] number 2")
	runCommand("angle a1 a2")
	runCommand("~define axes")

As before, the angles will be in the reply log.  In the above script  
you could call the angle function directly, which would allow you to  
put more info with the angle value, like this:

	angle = Midas.angle(objIDs=["a1", "a2"])
	print m, angle

and you would need an "import Midas" near the top of the script.
	BTW, although the current daily build is fine for measuring axes, it  
has a few unrelated bugs that might prove annoying in extended use so  
I wouldn't make it your "everyday" Chimera.  I hope to get those bugs  
fixed today so that tomorrow's build will be more useable as a  
workaday Chimera.

--Eric

                         Eric Pettersen
                         UCSF Computer Graphics Lab
                         http://www.cgl.ucsf.edu


>


	

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://plato.cgl.ucsf.edu/pipermail/chimera-dev/attachments/20100119/e9f2299e/attachment.html>


More information about the Chimera-dev mailing list