<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
<div class="moz-cite-prefix">Hi Dan,<br>
<br>
I added the "shape boxpath" command to Chimera to display
box-beam protein backbones and output cut distances for making
your physical models.<br>
<br>
<a class="moz-txt-link-freetext" href="http://collegenews.org/faculty-focus/2011/welding-art-and-science.html">http://collegenews.org/faculty-focus/2011/welding-art-and-science.html</a><br>
<br>
I've attached an example picture and command script that made that
picture. More details, for example, how to get the cut distances
is given in the Chimera feature/bug database:<br>
<br>
<a class="moz-txt-link-freetext" href="http://plato.cgl.ucsf.edu/trac/chimera/ticket/11191#comment:1">http://plato.cgl.ucsf.edu/trac/chimera/ticket/11191#comment:1</a><br>
<br>
I have not tested the output cut distances so you should do some
sanity checks with simple test cases before you trust those
numbers. If you are curious about the code it is here<br>
<br>
<a class="moz-txt-link-freetext" href="http://plato.cgl.ucsf.edu/trac/chimera/browser/trunk/libs/Shape/boxpath.py">http://plato.cgl.ucsf.edu/trac/chimera/browser/trunk/libs/Shape/boxpath.py</a><br>
<br>
The new command will be in tonight's Chimera daily builds.<br>
<br>
Here's a weird connection. These sculptural box beams may help
display large molecules on cell phones! Cell phones have slow 3-d
graphics and this square cross-section depiction would place
minimal computational demands on the phone. Typical depictions
with spheres and cylinders and smooth ribbons require a lot more
computational power.<br>
<br>
Tom<br>
<br>
<br>
<br>
-------- Original Message --------<br>
Subject: Re: Fwd: [Chimera-users] Texans: get to work!<br>
From: Daniel Gurnon <br>
To: Tom Goddard <br>
Date: 7/17/12 3:26 PM<br>
</div>
<blockquote
cite="mid:CAMLvGruvHhYPD_gfK-qkw75c1AtZQzxatKr+MUWKg4-5kGr3xA@mail.gmail.com"
type="cite">Hi Tom,
<div>Sorry for the delay- I was just about to email you when I
discovered your message. Missed it the first time
somehow. Thanks for offering to help.</div>
<div><br>
</div>
<div> The key to the saw problem is doing it old-school: Julian
Voss-Andreae (the artist who came up with the idea of turning
protein backbones into miter-cut sculptures) showed me how to
use a Japanese pull-saw to make the cuts by hand. Besides being
easier than setting up a miter saw, the small kerf minimizes
material loss. The distances along the edges allow us to trace
out the plane, and then you just carefully cut along the line. </div>
<div><br>
</div>
<div>When we did this in steel we used grinders to cut out each
piece from a box beam. It was a little more difficult than it
was with wood, because to make the welds look right we had to
account for the thickness of the material. </div>
<div><br>
</div>
<div>And about the Euler angles- right, there would only be two in
this case. The third is what allows us to translate the 3D
structure back into a linear piece of material. As long as the
material is symmetrical, you can make the miter cuts and just
flip every other piece. </div>
<div><br>
</div>
<div>So as I mentioned in my earlier message, Julian's C++ program
does this but isn't user friendly. We want to make one that is
user-friendly so that others can try the same thing (would make
a great art/science lab!), and I want to integrate it with
Chimera. I'm attaching his program to this email so you can see
what its doing.</div>
<div>Again, thanks a lot for the help!</div>
<div>Dan</div>
<div><br>
<br>
<div class="gmail_quote">On Thu, Jul 12, 2012 at 12:52 AM, Tom
Goddard<span dir="ltr"></span><span dir="ltr"></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0
.8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>Hi Dan,<br>
<br>
The method I described could easily dump out the
distances along the 4 box edges where the cuts cross.
From those numbers I could mark a beam. But how to make
an angled cut depends on what kind of saw you are
using. Using a wood radial arm type miter saw I think
you can usually adjust the blade rotation about the
vertical axis, but not about any other axis. Maybe some
can be tilted about the horizontal front back axis too.
In any case your saw or cutting machine needs to have
two degrees of freedom to make the cut any plane through
a box shaped beam. There are lots of differing
conventions for Euler angles so if your saw used Euler
angles it would be necessary to know the exact
convention and reference frame. There are 3 Euler
angles and this problem only involves two angles. In
summary, any quantitative description of the cuts could
be output relatively easily, the hard part is providing
a precise specification that defines those output
values. I think it looks cool and am happy to take a
crack at the Python code if I know exactly what is
needed.<span class="HOEnZb"><font color="#888888"><br>
<br>
Tom<br>
<br>
<br>
<br>
</font></span></div>
<div>
<div class="h5">
<blockquote type="cite">A method of computing a
surface model like you describe would be great Tom.
Thanks. During the planning stages for the
sculptures I just played with bond thickness until I
had something that looked close to what we were
making (see attached figure, c and d). A true boxed
backbone would be better. Also, a script and
explanation like yours would be useful for teaching,
as another little example of useful intersections
between computer science, math, biochemistry and
art.
<div> <br>
</div>
<div>But the other aim I have is to use Chimera to
obtain the distances from point to point along the
four edges of a real beam of some specified
thickness (and with a specified distance from
alpha carbon to alpha carbon). Marking and
connecting these points would result in a series
of planes for making miter-cuts. If the material
is symmetrical, a linear beam can be transformed
into a 3D backbone by cutting at these planes and
then inverting every other segment (see attached
figure, a and b). That's where the Euler angles
come in.</div>
<div>Dan<br>
<div><br>
<div class="gmail_quote">On Wed, Jul 11, 2012 at
7:25 PM, Tom Goddard <span dir="ltr"></span>
wrote:<br>
<blockquote class="gmail_quote"
style="margin:0 0 0 .8ex;border-left:1px
#ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
<div>Hi Dan,<br>
<br>
If your aim is to draw the box beam
protein backbone one way to go about it
is as follows. Make the 4 paths that
follow the box corners and traverse one
end of the protein to the other. How to
do this. Start at one end and place a
square (the box beam cross-section) with
center at the first backbone atom and
with its plane perpendicular to the line
between atom 1 and atom 2. Then draw
lines starting from each corner of the
square parallel to the line between
atoms 1 and 2. To decide where these
lines have to turn at atom 2 create a
plane that passes through atom 2 and is
perpendicular to the plane defined by
atoms 1, 2, and 3 and bisects the angle
formed by segments 1/2 and 2/3. The
lines from 1 to 2 bend when they hit
that plane and new lines head off
parallel to the line between atoms 2 and
3. Now repeat the process to find where
those lines bend on the bisecting plane
through atom 3. Once you have the 4
lines with all their bend points you can
draw a quadrilateral for each box face
using the 4 appropriate line bend
points. In this prescription the
rotational orientation of the square
placed at the start is arbitrary.
Different rotations will give different
appearances. The calculation would be
very fast and the whole box path could
be updated in real time as you rotated
the end and that causes rotation of all
the other box beam segments.<br>
<br>
The analytic geometry to do this
calculation and make the surface model
in Chimera is not too hard and I could
give you a bit of Python code to do it
and display in Chimera if you like.<span><font
color="#888888"><br>
<br>
Tom<br>
<br>
<br>
<br>
</font></span></div>
<div>
<div>
<blockquote type="cite">Dan,
<div><span
style="white-space:pre-wrap"> </span>Tom
Goddard is our "Euler angle
expert", so I'm forwarding this
along!</div>
<div><br>
</div>
<div>--Eric<br>
<div><br>
<div>Begin forwarded message:</div>
<br>
<blockquote type="cite">
<div
style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px"><span><b>From:
</b></span><span
style="font-family:'Helvetica';font-size:medium">Daniel
Gurnon<br>
</span></div>
<div
style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px"><span><b>Date:
</b></span><span
style="font-family:'Helvetica';font-size:medium">July
11, 2012 2:25:36 PM PDT<br>
</span></div>
<div
style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px"><span><b>To:
</b></span><span
style="font-family:'Helvetica';font-size:medium">Eric
Pettersen<br>
</span></div>
<div
style="margin-top:0px;margin-right:0px;margin-bottom:0px;margin-left:0px"><span><b>Subject:
</b></span><span
style="font-family:'Helvetica';font-size:medium"><b>Re:
[Chimera-users] Texans:
get to work!</b><br>
</span></div>
<br>
<div class="gmail_quote">
<blockquote
class="gmail_quote"
style="margin:0 0 0
.8ex;border-left:1px #ccc
solid;padding-left:1ex">
<div
style="word-wrap:break-word">
<div>
<div>
<blockquote
type="cite"><br>
</blockquote>
</div>
I guess I'm baffled by
the question. :-) The
difference in
coordinates for two
atoms is a translation
vector. What does the
"rotation matrix for
two atoms" mean
exactly?</div>
<span><font
color="#888888">
<div> <br>
</div>
<div>--Eric</div>
</font></span></div>
</blockquote>
<div><br>
</div>
<div>I didn't explain that
very well at all. Bear
with me here, because I
haven't had a math class
in almost 20 years....</div>
<div><br>
</div>
<div>Say a protein is
displayed as a backbone
trace, from alpha carbon
to alpha carbon. So, aC1
and aC2 make a line. I
want to know how to get
from aC2 to aC3 by way of
Euler angles, and then how
to get to aC4 relative to
the line between aC2-C3,
and on and on down the
line. In other words,
these angles would allow
me to take all of the
coordinates of the 3D
structure and translate
them into a straight
line...or more
importantly, to take a
straight line of atoms and
transform it into a 3D
structure.</div>
<div><br>
</div>
<div>The artist I worked
with on the protein
sculptures, Julian Voss
Andreae, basically used
this approach to turn the
coordinates from a pdb
file into cutting
instructions for the
steel. When we made the
sculptures, I used chimera
to render proteins similar
to how they would appear
as final, welded
sculptures. When we
decided on our "subjects",
I gave Julian the
coordinates and he used
his program to create the
instructions. He wrote a
program of his own to do
this, but it requires
programming knowledge to
use it. My goal is to make
a user-friendly version
for students, and I want
to integrate it with
chimera to take advantage
of all of the built-in
display options. </div>
</div>
</blockquote>
</div>
<br>
</div>
</blockquote>
<br>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</div>
</blockquote>
</div>
</div>
</blockquote>
<br>
</body>
</html>