[Chimera-users] Automatic struts for 3D printing?

Tom Goddard goddard at sonic.net
Fri Aug 16 17:46:46 PDT 2013


Hi Darrell,

  Your plastic models are super cool.  I'm jealous -- we don't have a color printer.  I had no idea you were adding so many struts.  I'm afraid it would look less attractive in one color.  I see that some models are ribbon only and some have the residues depicted as surface blobs -- none of your pictured models used spheres and cylinders for atoms and bonds.  That helps avoid confusing the struts for molecular bonds.  I'm a puzzled by your dozens of pink blobs in image 3 and 7 and cyan blobs in image 9 in each case connected by lots of sticks.  They look like individual residues but are too far apart to be a polypeptide I think -- maybe many copies of a small ligand?

  The algorithm for placing struts sounds quite simple.  Chimera has ribbon splines that go exactly through the C-alphas, and can also join side chains to a ribbon even when the C-alpha is not on the ribbon.  So I think that won't be a problem.  The Jmol strut code I looked at looked more complex than what you describe.  If it simply chose short distance struts wouldn't you get a bunch of unneeded struts say within one alpha helix, and maybe lack some long range struts that are needed to hold everything together?

  In any case, if we come up with an algorithm, or just want to copy the Jmol code, it looks very easy to add to Chimera.  I can probably do an implementation in half a day.  The main thing is to figure out exactly what the algorithm should do.  Maybe I can put something in next week.

	Tom



On Aug 16, 2013, at 5:16 PM, "Hurt, Darrell (NIH/NIAID) [E]" wrote:

> Hi Tom,
> 
> I've been printing ribbon/cartoon and surface representations of proteins
> and nucleic acids for many years using a Z Corp machine. I've also done
> some "ball-and-stick" and "VDW-sphere" kinds of prints. Often we print
> substrates in "stick" mode and connect the sticks to the ribbon using
> manually-placed struts. We will continue to use our Z Printer, but we are
> also buying a "desktop" 3D printer that more people can afford. It is an
> "FDM" printer similar to the uPrinter your webpages describe.
> 
> The algorithm used by the George Phillips script is a little different
> (and perhaps simpler) than the one you describe. It has two parameters:
> (1) the maximum length of a strut and (2) the minimum closeness of any two
> struts. The second parameter is a little funky; I'll describe it below.
> The script first identifies all pairs of C-alphas (or pairs of initial
> phosphates on the backbone for nucleic acids). Then it creates
> "pseudobonds" (the struts) between all of those pairs which conform to the
> maximum length parameter. The next step is to cull the list of pseudobonds
> according to the minimum distance parameter so that you don't get struts
> everywhere. Here's where it gets kind of funky because I don't know how
> this distance is calculated. Either it is calculated from the starting end
> of a pseudobond (which is what I expect from what I can see of the results
> of the script) or it does it from center/centroid of the pseudobond.
> 
> The script also adjusts some parameters to thicken the ribbons, sticks,
> etc. and increase the triangle count of the exported mesh.
> 
> This usually works great, but there is one little problem because the
> struts are calculated to put the ends of the struts at the C-alpha
> positions. For helices, this usually isn't a problem because the helix
> ribbon/cartoon goes through the C-alpha position. But for strands which
> are drawn on a spline of the C-alphas, the struts sometimes either go
> through or do not reach the ribbon, making the struts useless. Using some
> standard tools in PyMOL, I force the ribbon to go through the C-alpha
> positions everywhere there is a strut terminus. In this way, the ribbon
> and the ends of the struts correspond and the print is strengthened
> without sacrificing the aesthetics of the splined ribbon.
> 
> I've attached the results of this script for both the mesh and the actual
> print (the "ribbon.jpg" and "ribbon.png" images). Of course, printing in
> monochrome plastic will be different, but that's what we're hoping to
> experiment with. I've also attached a few other pictures of our prints.
> 
> George and I have discussed sharing his script with a wider audience or
> even publishing some kind of technical note about it. He seems willing to
> share it with certain limitations. Maybe we can all write something
> together if we build it into Chimera. We might be able to do it
> internally, but I would have to get my developers more familiar with the
> internals of Chimera first. I welcome any efforts you or others might make.
> 
> Thanks,
> Darrell
> 
> 
> -- 
> Darrell Hurt, Ph.D.
> Section Head, Computational Biology
> Bioinformatics and Computational Biosciences Branch (BCBB)
> OCICB/OSMO/OD/NIAID/NIH
> 
> 31 Center Drive, Room 3B62B, MSC 2135
> Bethesda, MD 20892-2135
> Office: 301-402-0095
> Mobile: 301-758-3559Web: BCBB Home Page
> <http://www.niaid.nih.gov/about/organization/odoffices/omo/ocicb/Pages/bcbb
> .aspx#niaid_inlineNav_Anchor>
> Twitter: @niaidbioit <https://twitter.com/niaidbioit>
> 
> 
> Disclaimer: The information in this e-mail and any of its attachments is
> confidential and may contain sensitive information. It should not be used
> by anyone who is not the original intended recipient. If you have received
> this e-mail in error please inform the sender and delete it from your
> mailbox or any other storage devices. National Institute of Allergy and
> Infectious Diseases shall not accept liability for any statements made
> that are sender's own and not expressly made on behalf of the NIAID by one
> of its representatives.
> 
> 
> 
> 
> 
> 
> On 8/16/13 6:14 PM, "Tom Goddard"  wrote:
> 
>> Hi Darrell,
>> 
>> Here are some of the molecule models we have printed in plastic.
>> 
>> 	http://www.cgl.ucsf.edu/Outreach/technotes/ModelGallery/index.html
>> 
>> and a description of the printer we used
>> 
>> 	http://www.cgl.ucsf.edu/Outreach/technotes/uprint.html
>> 
>> Chimera does not currently have any tool to automatically add struts,
>> although I've done this by hand in Chimera.  For instance the heptatis B
>> virus pentamer on the above web page had part of an icosahedral cage made
>> from cylinders underneath it to hold the proteins on the virus surface
>> together.
>> 
>> One thing you'll see is that all our printed molecules came from
>> surface depictions in Chimera (made with molmap command).  I'm not sure
>> if we successfully printed and ball and stick models via STL or VRML.  We
>> tried years ago and I recall them falling apart because where the spheres
>> and cylinders intersected it put no plastic.  Basically an atom sphere
>> and bond cylinder are two surfaces and for points inside two surfaces (or
>> any even number of surfaces I think) the printer places no plastic.  So
>> overlapped cylinders and spheres didn't hold together.  This seems to be
>> a printer driver issue -- how it takes a surface and makes a solid out of
>> it.  I don't know that we've tried with our newer printers at UCSF --
>> maybe it works now.
>> 
>> Have you successfully printed ball and stick models exported from
>> Chimera?  What kind of printer?
>> 
>> Now about automatically adding struts -- probably would not be hard.
>> The struts code I saw online
>> 
>> 	http://idp1.force.cs.is.nagoya-u.ac.jp/jmol/src/org/jmol/modelsetbio/Alph
>> aPolymer.java
>> 
>> didn't have a clear description of the algorithm the use, but it would
>> just take an hour to study it.  I could see aiming to add struts that 1)
>> are cylinders between atoms, 2) are short, 3) make the whole model one
>> connected piece, 4) make every contiguous N (50) residues connected in at
>> least 3 places (2 probably being continuations before and after and one
>> being a crossbridge) to other residues for rigidity, 5) not put
>> connections at the ends where they would be easily confused for real
>> biological connections, 6) struts should not look like real bonds --
>> maybe make them fatter or better square cross-section.  Actually that
>> rigidity constraint is more complex -- probably don't want to have two
>> large pieces connected to each other through only one bond.
>> 
>> I recall printing some ribbon models in ABS plastic with ribbon
>> cross-section pretty small -- half a centimeter.  With 100 residues and
>> no cross bridges the model is very flexible and easy to break.
>> 
>> Could you provide a picture of a ball and stick model with struts to
>> give a better idea of what you are shooting for?
>> 
>> 	Tom
>> 
>> 
>> On Aug 16, 2013, at 2:32 PM, "Hurt, Darrell (NIH/NIAID) [E]" wrote:
>> 
>>> Hi everyone,
>>> 
>>> We are assembling an open data portal or "exchange" for producing
>>> "ready-to-3D-print" files for biological molecules, EM data, and other
>>> imaging data using some automated pipelines. A little bit more on our
>>> project can be found here:
>>> http://www.hhs.gov/open/initiatives/ignite/3d-printing-exchange.html
>>> 
>>> A few years ago this came up on the "dev" discussion board:
>>> http://www.cgl.ucsf.edu/pipermail/chimera-dev/2011/000800.html
>>> 
>>> In the email thread above, it mentions a script by George Phillips
>>> called "struts.py" that was modified for use in RasMol. I am familiar
>>> with his version of this script for PyMOL. It works very well and I have
>>> been using it for years. However, the VRML from PyMOL is sometimes
>>> buggy. I like the exports from Chimera much better, including the
>>> X3D2VRML and X3D2STL utilities. If I could get the same functionality of
>>> this "struts" script in Chimera, that would be one less thing I need to
>>> go to PyMOL for (the list is getting shorter and shorter!).
>>> 
>>> We're looking at doing it here, but I would welcome any contribution
>>> from the Chimera community if something already exists. Do you have
>>> anything? Is this script something of interest? Anyone interested in
>>> contributing to our "exchange" database/web portal? I would love any
>>> feedback you might have.
>>> 
>>> Thanks,
>>> Darrell
>>> 
>>> --
>>> Darrell Hurt, Ph.D.
>>> Section Head, Computational Biology
>>> Bioinformatics and Computational Biosciences Branch (BCBB)
>>> OCICB/OSMO/OD/NIAID/NIH
>>> 
>>> 31 Center Drive, Room 3B62B, MSC 2135
>>> Bethesda, MD 20892-2135
>>> Office: 301-402-0095
>>> Mobile: 301-758-3559
>>> Web: BCBB Home 
>>> Page<http://www.niaid.nih.gov/about/organization/odoffices/omo/ocicb/Page
>>> s/bcbb.aspx#niaid_inlineNav_Anchor>
>>> Twitter: @niaidbioit<https://twitter.com/niaidbioit>
>>> 
>>> Disclaimer: The information in this e-mail and any of its attachments
>>> is confidential and may contain sensitive information. It should not be
>>> used by anyone who is not the original intended recipient. If you have
>>> received this e-mail in error please inform the sender and delete it
>>> from your mailbox or any other storage devices. National Institute of
>>> Allergy and Infectious Diseases shall not accept liability for any
>>> statements made that are sender's own and not expressly made on behalf
>>> of the NIAID by one of its representatives.
>>> 
>>> _______________________________________________
>>> Chimera-users mailing list
>>> Chimera-users at cgl.ucsf.edu
>>> http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users
>>> 
>> 
> 
> <ribbon.png><ribbon.jpg><3D-print-4317.jpg><3D-print-4075.jpg><3D-print-4119.jpg><3D-print-4169.jpg><3D-print-4275.jpg><3D-print-4145.jpg><3D-print-4347.jpg>_______________________________________________
> Chimera-users mailing list
> Chimera-users at cgl.ucsf.edu
> http://plato.cgl.ucsf.edu/mailman/listinfo/chimera-users




More information about the Chimera-users mailing list