Print

Print


Writing a G-code generator for a 3-D printer?  :^)

EMAN2 does have routines in its core library (accessible from Python) which can do some aspects of this process, but not everything. Certainly it can cut arbitrary slices through a volume and threshold them to produce something like a 2-D mask. I'd be happy to give you some example code for this sort of thing in Python using EMAN if you like.

However, EMAN and most of the other CryoEM software is pretty pixel-focused. It sounds like you are really after something that does CSG (constructive solid geometry). The disadvantage of the pixel/voxel approach is that you need huge amounts of RAM for structures with a lot of detail. This depends a lot on what your inputs and outputs will be. If you are planning to take something like a 3-D volumetric reconstruction of a molecule, and then generate slice-by-slice contours, then EMAN could, indeed, help with everything but the 2-D contour tracing. However, if you really do have a set of vertices and surfaces defining a closed shape in 3-D, and wish to generate contours for that, a CSG library is definitely a better choice. You may check out CGAL:

http://www.cgal.org/

which has python bindings
----------------------------------------------------------------------------
Steven Ludtke, Ph.D.
Professor, Dept. of Biochemistry and Mol. Biol.                Those who do
Co-Director National Center For Macromolecular Imaging            ARE
Baylor College of Medicine                                     The converse
[log in to unmask]<mailto:[log in to unmask]>  -or-  [log in to unmask]<mailto:[log in to unmask]>               also applies
http://ncmi.bcm.edu/~stevel

On Feb 15, 2016, at 10:16 AM, Paul Kibet Korir <[log in to unmask]<mailto:[log in to unmask]>> wrote:

Hello,

Consider a closed 3D surface constructed from a set of vertices arranged into a set of polygons. I would like to compute the image that forms on a plane slice through this closed volume. My goal is to acquire the set of contours that form on this surface.

Could anyone give me some ideas of how this could be performed (efficiently)? Does an open source Python API exist for this problem?

Thanks! ^_^

--
With kind regards,

Paul K Korir, PhD
Scientific Programmer
EMBL-EBI
Main Building, A2-35,
WTGC, Hinxton, Cambridge CB10 1SD
P: +44 1223 49 44 22
F: +44 1223 49 44 68