
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.