[Chimera-users] Box-beam protein sculptures
Tom Goddard
goddard at sonic.net
Wed Jul 18 18:19:04 PDT 2012
Hi Dan,
I added the "shape boxpath" command to Chimera to display box-beam
protein backbones and output cut distances for making your physical models.
http://collegenews.org/faculty-focus/2011/welding-art-and-science.html
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:
http://plato.cgl.ucsf.edu/trac/chimera/ticket/11191#comment:1
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
http://plato.cgl.ucsf.edu/trac/chimera/browser/trunk/libs/Shape/boxpath.py
The new command will be in tonight's Chimera daily builds.
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.
Tom
-------- Original Message --------
Subject: Re: Fwd: [Chimera-users] Texans: get to work!
From: Daniel Gurnon
To: Tom Goddard
Date: 7/17/12 3:26 PM
> Hi Tom,
> 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.
>
> 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.
>
> 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.
>
> 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.
>
> 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.
> Again, thanks a lot for the help!
> Dan
>
>
> On Thu, Jul 12, 2012 at 12:52 AM, Tom Goddardwrote:
>
> Hi Dan,
>
> 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.
>
> Tom
>
>
>
>> 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.
>>
>> 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.
>> Dan
>>
>> On Wed, Jul 11, 2012 at 7:25 PM, Tom Goddard wrote:
>>
>> Hi Dan,
>>
>> 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.
>>
>> 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.
>>
>> Tom
>>
>>
>>
>>> Dan,
>>> Tom Goddard is our "Euler angle expert", so I'm forwarding
>>> this along!
>>>
>>> --Eric
>>>
>>> Begin forwarded message:
>>>
>>>> *From: *Daniel Gurnon
>>>> *Date: *July 11, 2012 2:25:36 PM PDT
>>>> *To: *Eric Pettersen
>>>> *Subject: **Re: [Chimera-users] Texans: get to work!*
>>>>
>>>>>
>>>> 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?
>>>>
>>>> --Eric
>>>>
>>>>
>>>> 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....
>>>>
>>>> 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.
>>>>
>>>> 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.
>>>
>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://plato.cgl.ucsf.edu/pipermail/chimera-users/attachments/20120718/2b02f4c6/attachment.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: boxpath.jpg
Type: image/jpeg
Size: 92598 bytes
Desc: not available
URL: <http://plato.cgl.ucsf.edu/pipermail/chimera-users/attachments/20120718/2b02f4c6/attachment.jpg>
-------------- next part --------------
# Example of box beam protein backbones.
open 1m4x
~ribbon
display minimal
shape box :.A at CA width 2 color pink
shape box :.B at CA width 2 color lightblue modelId #1
shape box :.C at CA width 2 color lightyellow modelId #1
transparency 20 #1
set bg dimgray
set silhouette
More information about the Chimera-users
mailing list