[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