<html><head><meta http-equiv="Content-Type" content="text/html charset=us-ascii"></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; "><div>Hi Darrell,</div><div><br></div><div>&nbsp; I added a "struts" command to Chimera -- in tonight's daily builds. &nbsp;I've attached your picture of hemagglutinin with struts and a similar picture made with the new struts command and also a picture of a tRNA (4tna) with a small number of struts made in Chimera.</div><div><br></div><div><img height="400" width="235" apple-width="yes" apple-height="yes" id="f5daedfb-5497-412a-96f2-01e0a449b339" src="cid:2AFCE3A1-824B-4430-8153-A5616DAE2C5E@cgl.ucsf.edu"><img height="400" width="234" apple-width="yes" apple-height="yes" id="8a13fd4c-cc06-4080-bb4c-50faefc9a5c3" src="cid:54ACB2C8-EF27-4A47-A8B0-8718D93CAF28@cgl.ucsf.edu"></div><div><img height="200" width="217" apple-width="yes" apple-height="yes" id="7bdd2e3c-4201-4a96-bfc2-81da5dc1835b" src="cid:7CBA5018-1ED2-48AD-BD7B-5D6F71E439C4@cgl.ucsf.edu"><img height="200" width="267" apple-width="yes" apple-height="yes" id="fb90eed6-1cf8-442c-888b-dd9464f87582" src="cid:960E041D-8A30-4F42-8DB2-28758F7F411E@cgl.ucsf.edu"></div><div><br></div><div>The Chimera command for the hemagglutinin model struts is</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>struts @CA length 7 loop 30</div><div><br></div><div>I decided to try a different algorithm in Chimera for adding struts from the one in the Jmol code. &nbsp;The Chimera struts command uses two parameters. &nbsp;It finds all pairs of C-alpha atoms within a distance of 7 Angstroms of each other. &nbsp;Then it considers those from shortest to longest distances. &nbsp;It adds a strut if the two atoms the strut would join are more than 30 Angstroms away via bonded connections. &nbsp;Basically it adds struts up to a given maximum length so that C-alphas are connected via bonds and struts by no more than a maximum loop length. &nbsp;The maximum strut length (7 Angstroms) and maximum loop length (30 Angstroms) are the two parameters. &nbsp;For the tRNA model I used 15 and 80 and use P atoms instead of CA atoms (command "struts @P length 15 loop 80").</div><div><br></div><div>&nbsp; Here's roughly what the Jmol code does, that I decided not to copy</div><div><br></div><div><div>&nbsp; &nbsp; &nbsp; 1) make struts short (less than 7 Angstroms),</div><div>&nbsp; &nbsp; &nbsp; 2) make struts join residues at least 6 residues apart in polymer,</div><div>&nbsp; &nbsp; &nbsp; 3) space out struts, ends of different struts no closer than 6 residues,</div><div>&nbsp; &nbsp; &nbsp; 4) include as many struts as possible meeting spacing and length constraints,</div><div>&nbsp; &nbsp; &nbsp; 5) put a strut within 3 residues of the end of each polymer.</div></div><div><br></div><div>The exact details of how it does this would take a long explanation -- which is my main reason for not copying it. &nbsp;The algorithm of the Chimera struts command is easily and precisely described above and produced reasonable struts for the half dozen test cases I tried. &nbsp;But it may prove not as good as the Jmol approach -- experience will tell -- and I can change it if needed.</div><div><br></div><div>&nbsp; Here is and example using all available strut command options</div><div><br></div><div>&nbsp; &nbsp; &nbsp;struts @CA length 7 loop 30 radius 0.75 color blue name struts_7_30 fat true model #5</div><div><br></div><div>Any set of atoms can be specified as strut end points, radius is the strut cylinder radius, color is the strut color, name is the name of the pseudo-bond model created for the struts (struts can be hidden using Model Panel), fattenRibbon sets a fatter ribbon style better for printing (can adjust as desired with Ribbon Style Editor, menu Tools / Depiction), modelId is the model number you want for the strut pseudobonds. &nbsp;Struts can span multiple models, or be restricted to just a part (e.g. one chain) of a model. &nbsp;The command will get documented in the Chimera User's Guide.</div><div><br></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>Tom</div><div><br></div><div><br></div><br><div><div>On Aug 16, 2013, at 7:02 PM, "Hurt, Darrell (NIH/NIAID) [E]" wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite">Hi Tom,<br><br>Thanks. This is some of our best stuff. For our material, the struts are<br>vitally important or the whole thing crumbles. We use so many struts that<br>a script is really important to doing this efficiently. I have no idea how<br>it will work in a monochrome plastic printer. However, there are some<br>plastic printers emerging on the market now that can print in two colors<br>plus a support material. That might help with distinguishing between<br>structure and strut. One idea is to print both the struts and the building<br>supports in the same material and then dissolving all that, leaving just<br>the protein.<br><br>You're right about the struts being too short. They would be pointless<br>along a helix. So I think there is a hard-coded minimum strut distance to<br>prevent struts within the helix, but a user-settable parameter for the<br>maximum strut distance. This is especially important in protein complexes.<br><br>The pink and baby blue blobs are glycosylation on the surface of the<br>proteins. These are modeled in using the glycoprotein builder:<br><a href="http://glycam.ccrc.uga.edu/ccrc/gp/index.jsp?tool=crystallography&amp;option=ff">http://glycam.ccrc.uga.edu/ccrc/gp/index.jsp?tool=crystallography&amp;option=ff</a><br>99:glycam06<br><br>If you think this is cool, you've got to check out what Kawakami Masaru is<br>doing with 3D printed molecules:<br>http://www.youtube.com/watch?v=NVtE_AS3jbI<br>http://dx.doi.org/10.1063/1.4739961<br><br>Thanks!<br>Darrell<br><br><br>-- <br>Darrell Hurt, Ph.D.<br>Section Head, Computational Biology<br>Bioinformatics and Computational Biosciences Branch (BCBB)<br>OCICB/OSMO/OD/NIAID/NIH<br><br>31 Center Drive, Room 3B62B, MSC 2135<br>Bethesda, MD 20892-2135<br>Office: 301-402-0095<br>Mobile: 301-758-3559Web: BCBB Home Page<br>&lt;http://www.niaid.nih.gov/about/organization/odoffices/omo/ocicb/Pages/bcbb<br>.aspx#niaid_inlineNav_Anchor&gt;<br>Twitter: @niaidbioit &lt;https://twitter.com/niaidbioit&gt;<br><br><br>Disclaimer: The information in this e-mail and any of its attachments is<br>confidential and may contain sensitive information. It should not be used<br>by anyone who is not the original intended recipient. If you have received<br>this e-mail in error please inform the sender and delete it from your<br>mailbox or any other storage devices. National Institute of Allergy and<br>Infectious Diseases shall not accept liability for any statements made<br>that are sender's own and not expressly made on behalf of the NIAID by one<br>of its representatives.<br><br><br><br><br><br><br>On 8/16/13 8:46 PM, "Tom Goddard" &lt;goddard@sonic.net&gt; wrote:<br><br><blockquote type="cite">Hi Darrell,<br><br> Your plastic models are super cool. &nbsp;I'm jealous -- we don't have a<br>color printer. &nbsp;I had no idea you were adding so many struts. &nbsp;I'm afraid<br>it would look less attractive in one color. &nbsp;I see that some models are<br>ribbon only and some have the residues depicted as surface blobs -- none<br>of your pictured models used spheres and cylinders for atoms and bonds.<br>That helps avoid confusing the struts for molecular bonds. &nbsp;I'm a puzzled<br>by your dozens of pink blobs in image 3 and 7 and cyan blobs in image 9<br>in each case connected by lots of sticks. &nbsp;They look like individual<br>residues but are too far apart to be a polypeptide I think -- maybe many<br>copies of a small ligand?<br><br> The algorithm for placing struts sounds quite simple. &nbsp;Chimera has<br>ribbon splines that go exactly through the C-alphas, and can also join<br>side chains to a ribbon even when the C-alpha is not on the ribbon. &nbsp;So I<br>think that won't be a problem. &nbsp;The Jmol strut code I looked at looked<br>more complex than what you describe. &nbsp;If it simply chose short distance<br>struts wouldn't you get a bunch of unneeded struts say within one alpha<br>helix, and maybe lack some long range struts that are needed to hold<br>everything together?<br><br> In any case, if we come up with an algorithm, or just want to copy the<br>Jmol code, it looks very easy to add to Chimera. &nbsp;I can probably do an<br>implementation in half a day. &nbsp;The main thing is to figure out exactly<br>what the algorithm should do. &nbsp;Maybe I can put something in next week.<br><br><span class="Apple-tab-span" style="white-space:pre">        </span>Tom<br><br><br><br>On Aug 16, 2013, at 5:16 PM, "Hurt, Darrell (NIH/NIAID) [E]" wrote:<br><br><blockquote type="cite">Hi Tom,<br><br>I've been printing ribbon/cartoon and surface representations of<br>proteins<br>and nucleic acids for many years using a Z Corp machine. I've also done<br>some "ball-and-stick" and "VDW-sphere" kinds of prints. Often we print<br>substrates in "stick" mode and connect the sticks to the ribbon using<br>manually-placed struts. We will continue to use our Z Printer, but we<br>are<br>also buying a "desktop" 3D printer that more people can afford. It is an<br>"FDM" printer similar to the uPrinter your webpages describe.<br><br>The algorithm used by the George Phillips script is a little different<br>(and perhaps simpler) than the one you describe. It has two parameters:<br>(1) the maximum length of a strut and (2) the minimum closeness of any<br>two<br>struts. The second parameter is a little funky; I'll describe it below.<br>The script first identifies all pairs of C-alphas (or pairs of initial<br>phosphates on the backbone for nucleic acids). Then it creates<br>"pseudobonds" (the struts) between all of those pairs which conform to<br>the<br>maximum length parameter. The next step is to cull the list of<br>pseudobonds<br>according to the minimum distance parameter so that you don't get struts<br>everywhere. Here's where it gets kind of funky because I don't know how<br>this distance is calculated. Either it is calculated from the starting<br>end<br>of a pseudobond (which is what I expect from what I can see of the<br>results<br>of the script) or it does it from center/centroid of the pseudobond.<br><br>The script also adjusts some parameters to thicken the ribbons, sticks,<br>etc. and increase the triangle count of the exported mesh.<br><br>This usually works great, but there is one little problem because the<br>struts are calculated to put the ends of the struts at the C-alpha<br>positions. For helices, this usually isn't a problem because the helix<br>ribbon/cartoon goes through the C-alpha position. But for strands which<br>are drawn on a spline of the C-alphas, the struts sometimes either go<br>through or do not reach the ribbon, making the struts useless. Using<br>some<br>standard tools in PyMOL, I force the ribbon to go through the C-alpha<br>positions everywhere there is a strut terminus. In this way, the ribbon<br>and the ends of the struts correspond and the print is strengthened<br>without sacrificing the aesthetics of the splined ribbon.<br><br>I've attached the results of this script for both the mesh and the<br>actual<br>print (the "ribbon.jpg" and "ribbon.png" images). Of course, printing in<br>monochrome plastic will be different, but that's what we're hoping to<br>experiment with. I've also attached a few other pictures of our prints.<br><br>George and I have discussed sharing his script with a wider audience or<br>even publishing some kind of technical note about it. He seems willing<br>to<br>share it with certain limitations. Maybe we can all write something<br>together if we build it into Chimera. We might be able to do it<br>internally, but I would have to get my developers more familiar with the<br>internals of Chimera first. I welcome any efforts you or others might<br>make.<br><br>Thanks,<br>Darrell<br><br><br>-- <br>Darrell Hurt, Ph.D.<br>Section Head, Computational Biology<br>Bioinformatics and Computational Biosciences Branch (BCBB)<br>OCICB/OSMO/OD/NIAID/NIH<br><br>31 Center Drive, Room 3B62B, MSC 2135<br>Bethesda, MD 20892-2135<br>Office: 301-402-0095<br>Mobile: 301-758-3559Web: BCBB Home Page<br><br>&lt;http://www.niaid.nih.gov/about/organization/odoffices/omo/ocicb/Pages/bc<br>bb<br>.aspx#niaid_inlineNav_Anchor&gt;<br>Twitter: @niaidbioit &lt;https://twitter.com/niaidbioit&gt;<br><br><br>Disclaimer: The information in this e-mail and any of its attachments is<br>confidential and may contain sensitive information. It should not be<br>used<br>by anyone who is not the original intended recipient. If you have<br>received<br>this e-mail in error please inform the sender and delete it from your<br>mailbox or any other storage devices. National Institute of Allergy and<br>Infectious Diseases shall not accept liability for any statements made<br>that are sender's own and not expressly made on behalf of the NIAID by<br>one<br>of its representatives.<br><br><br><br><br><br><br>On 8/16/13 6:14 PM, "Tom Goddard" &nbsp;wrote:<br><br><blockquote type="cite">Hi Darrell,<br><br>Here are some of the molecule models we have printed in plastic.<br><br><span class="Apple-tab-span" style="white-space:pre">        </span>http://www.cgl.ucsf.edu/Outreach/technotes/ModelGallery/index.html<br><br>and a description of the printer we used<br><br><span class="Apple-tab-span" style="white-space:pre">        </span>http://www.cgl.ucsf.edu/Outreach/technotes/uprint.html<br><br>Chimera does not currently have any tool to automatically add struts,<br>although I've done this by hand in Chimera. &nbsp;For instance the heptatis<br>B<br>virus pentamer on the above web page had part of an icosahedral cage<br>made<br>from cylinders underneath it to hold the proteins on the virus surface<br>together.<br><br>One thing you'll see is that all our printed molecules came from<br>surface depictions in Chimera (made with molmap command). &nbsp;I'm not sure<br>if we successfully printed and ball and stick models via STL or VRML.<br>We<br>tried years ago and I recall them falling apart because where the<br>spheres<br>and cylinders intersected it put no plastic. &nbsp;Basically an atom sphere<br>and bond cylinder are two surfaces and for points inside two surfaces<br>(or<br>any even number of surfaces I think) the printer places no plastic. &nbsp;So<br>overlapped cylinders and spheres didn't hold together. &nbsp;This seems to<br>be<br>a printer driver issue -- how it takes a surface and makes a solid out<br>of<br>it. &nbsp;I don't know that we've tried with our newer printers at UCSF --<br>maybe it works now.<br><br>Have you successfully printed ball and stick models exported from<br>Chimera? &nbsp;What kind of printer?<br><br>Now about automatically adding struts -- probably would not be hard.<br>The struts code I saw online<br><br><br><span class="Apple-tab-span" style="white-space:pre">        </span>http://idp1.force.cs.is.nagoya-u.ac.jp/jmol/src/org/jmol/modelsetbio/Al<br>ph<br>aPolymer.java<br><br>didn't have a clear description of the algorithm the use, but it would<br>just take an hour to study it. &nbsp;I could see aiming to add struts that<br>1)<br>are cylinders between atoms, 2) are short, 3) make the whole model one<br>connected piece, 4) make every contiguous N (50) residues connected in<br>at<br>least 3 places (2 probably being continuations before and after and one<br>being a crossbridge) to other residues for rigidity, 5) not put<br>connections at the ends where they would be easily confused for real<br>biological connections, 6) struts should not look like real bonds --<br>maybe make them fatter or better square cross-section. &nbsp;Actually that<br>rigidity constraint is more complex -- probably don't want to have two<br>large pieces connected to each other through only one bond.<br><br>I recall printing some ribbon models in ABS plastic with ribbon<br>cross-section pretty small -- half a centimeter. &nbsp;With 100 residues and<br>no cross bridges the model is very flexible and easy to break.<br><br>Could you provide a picture of a ball and stick model with struts to<br>give a better idea of what you are shooting for?<br><br><span class="Apple-tab-span" style="white-space:pre">        </span>Tom<br><br><br>On Aug 16, 2013, at 2:32 PM, "Hurt, Darrell (NIH/NIAID) [E]" wrote:<br><br><blockquote type="cite">Hi everyone,<br><br>We are assembling an open data portal or "exchange" for producing<br>"ready-to-3D-print" files for biological molecules, EM data, and other<br>imaging data using some automated pipelines. A little bit more on our<br>project can be found here:<br>http://www.hhs.gov/open/initiatives/ignite/3d-printing-exchange.html<br><br>A few years ago this came up on the "dev" discussion board:<br>http://www.cgl.ucsf.edu/pipermail/chimera-dev/2011/000800.html<br><br>In the email thread above, it mentions a script by George Phillips<br>called "struts.py" that was modified for use in RasMol. I am familiar<br>with his version of this script for PyMOL. It works very well and I<br>have<br>been using it for years. However, the VRML from PyMOL is sometimes<br>buggy. I like the exports from Chimera much better, including the<br>X3D2VRML and X3D2STL utilities. If I could get the same functionality<br>of<br>this "struts" script in Chimera, that would be one less thing I need<br>to<br>go to PyMOL for (the list is getting shorter and shorter!).<br><br>We're looking at doing it here, but I would welcome any contribution<br>from the Chimera community if something already exists. Do you have<br>anything? Is this script something of interest? Anyone interested in<br>contributing to our "exchange" database/web portal? I would love any<br>feedback you might have.<br><br>Thanks,<br>Darrell<br><br>--<br>Darrell Hurt, Ph.D.<br>Section Head, Computational Biology<br>Bioinformatics and Computational Biosciences Branch (BCBB)<br>OCICB/OSMO/OD/NIAID/NIH<br><br>31 Center Drive, Room 3B62B, MSC 2135<br>Bethesda, MD 20892-2135<br>Office: 301-402-0095<br>Mobile: 301-758-3559<br>Web: BCBB Home<br><br>Page&lt;http://www.niaid.nih.gov/about/organization/odoffices/omo/ocicb/Pa<br>ge<br>s/bcbb.aspx#niaid_inlineNav_Anchor&gt;<br>Twitter: @niaidbioit&lt;https://twitter.com/niaidbioit&gt;<br><br>Disclaimer: The information in this e-mail and any of its attachments<br>is confidential and may contain sensitive information. It should not<br>be<br>used by anyone who is not the original intended recipient. If you have<br>received this e-mail in error please inform the sender and delete it<br>from your mailbox or any other storage devices. National Institute of<br>Allergy and Infectious Diseases shall not accept liability for any<br>statements made that are sender's own and not expressly made on behalf<br>of the NIAID by one of its representatives.<br><br>_______________________________________________<br>Chimera-users mailing list<br>Chimera-users@cgl.ucsf.edu<br>http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users<br><br></blockquote><br></blockquote><br><br>&lt;ribbon.png&gt;&lt;ribbon.jpg&gt;&lt;3D-print-4317.jpg&gt;&lt;3D-print-4075.jpg&gt;&lt;3D-print-4<br>119.jpg&gt;&lt;3D-print-4169.jpg&gt;&lt;3D-print-4275.jpg&gt;&lt;3D-print-4145.jpg&gt;&lt;3D-prin<br>t-4347.jpg&gt;_______________________________________________<br>Chimera-users mailing list<br>Chimera-users@cgl.ucsf.edu<br>http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users<br></blockquote><br></blockquote><br><br>_______________________________________________<br>Chimera-users mailing list<br>Chimera-users@cgl.ucsf.edu<br>http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users<br><br></blockquote></div><br></body></html>