[Chimera-users] Automatic struts for 3D printing?
Hurt, Darrell (NIH/NIAID) [E]
darrellh at niaid.nih.gov
Fri Aug 16 17:16:40 PDT 2013
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" <goddard at sonic.net> 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
>>
>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ribbon.png
Type: image/png
Size: 744924 bytes
Desc: ribbon.png
URL: <http://plato.cgl.ucsf.edu/pipermail/chimera-users/attachments/20130817/cdb1ffe4/attachment.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: ribbon.jpg
Type: image/jpeg
Size: 873509 bytes
Desc: ribbon.jpg
URL: <http://plato.cgl.ucsf.edu/pipermail/chimera-users/attachments/20130817/cdb1ffe4/attachment.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 3D-print-4317.jpg
Type: image/jpeg
Size: 587009 bytes
Desc: 3D-print-4317.jpg
URL: <http://plato.cgl.ucsf.edu/pipermail/chimera-users/attachments/20130817/cdb1ffe4/attachment-0001.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 3D-print-4075.jpg
Type: image/jpeg
Size: 544545 bytes
Desc: 3D-print-4075.jpg
URL: <http://plato.cgl.ucsf.edu/pipermail/chimera-users/attachments/20130817/cdb1ffe4/attachment-0002.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 3D-print-4119.jpg
Type: image/jpeg
Size: 663135 bytes
Desc: 3D-print-4119.jpg
URL: <http://plato.cgl.ucsf.edu/pipermail/chimera-users/attachments/20130817/cdb1ffe4/attachment-0003.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 3D-print-4169.jpg
Type: image/jpeg
Size: 501670 bytes
Desc: 3D-print-4169.jpg
URL: <http://plato.cgl.ucsf.edu/pipermail/chimera-users/attachments/20130817/cdb1ffe4/attachment-0004.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 3D-print-4275.jpg
Type: image/jpeg
Size: 508565 bytes
Desc: 3D-print-4275.jpg
URL: <http://plato.cgl.ucsf.edu/pipermail/chimera-users/attachments/20130817/cdb1ffe4/attachment-0005.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 3D-print-4145.jpg
Type: image/jpeg
Size: 273685 bytes
Desc: 3D-print-4145.jpg
URL: <http://plato.cgl.ucsf.edu/pipermail/chimera-users/attachments/20130817/cdb1ffe4/attachment-0006.jpg>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 3D-print-4347.jpg
Type: image/jpeg
Size: 554609 bytes
Desc: 3D-print-4347.jpg
URL: <http://plato.cgl.ucsf.edu/pipermail/chimera-users/attachments/20130817/cdb1ffe4/attachment-0007.jpg>
More information about the Chimera-users
mailing list