<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>