I've found a number of data sources that contain cell lineage and position information for the C. elegans embryo but they are not in a common format, or they are embedded in a scholarly paper. I've started building a "data warehouse" to store all this data in a common format, called WormCG (for worm computational geometry). The design is very loosely based on BioWarehouse.
To start, WormCG will only contain cell position information. I plan to extend it to include the cell outline and other features, but I have yet to see a data source for that type of data (so I may be going through images and tracing the data).
Once I have some initial data imported, I'll begin writing some tools to pull it out and visualize it. I did a quick spike where I created a 3D volume in nrrd format and used 3DSlicer to examine it, and that seems like a good initial approach. 3DSlicer is a wonderful program, but it does not have any 4D support (or if it does, I haven't been able to find it).
The code for WormCG will be posted on the sourceforge site within a week or two.
Wednesday, July 30, 2008
Friday, July 11, 2008
Visualization Tools
I've been looking for file formats that I could borrow, but didn't have much luck until this morning, and now I've got a case of information overload. Here is a sampling, all of which requires more in-depth reading. These aren't file formats, per se, but are visualization tools for viewing data similar to what I'll be generating, and most of them include file format specifications, conversions, and the like.
Vis5D+
I had seen GRASS's Grid3D, but did not see their reference to a visualization tool called Vis5d+. Vis5d+ is an open source project hosted on SourceForge, targeted at Unix platforms, billed as "a free OpenGL-based volumetric visualization program for scientific datasets in 3+ dimensions". Many of the screen shots are meterological data (clouds, isobars, etc), but it isn't restricted to that domain.
The file format is pretty flexible, but the preferred format is a 5D rectangle. Quoting from the Vis5D+ manual:
There is a windows port called PC-Vis5D, but I haven't seen a download link, and the code appears to be a bit stale (the latest release was in 2000, if I'm reading the site correctly).
Volume4D PRO
There are a bunch of applications in the commercial space, including Volume4D PRO, aimed primarily at medical imaging (MRI, CT scan, etc). It is basically a 4D voxel visualization tool.
VisBio
The VisBio tool, "a biological visualization tool designed for easy visualization and analysis of multidimensional image data," also looks intriguing. It is aimed at visualization of microscopy data, but that includes 3D data. It doesn't appear to handle 4D data, but does provide links the Bio-Formats library, "a standalone Java library for reading and writing microscopy file formats". I have not had a chance to review all the formats to see if any of them include 4D capability.
They include a couple of sample movies, one of which is a volume rendering of a C. elegans embryo undergoing cell fusion. The movie isn't 4D data, but a rotation of a static model.
It runs on Windows, Mac, Linux, etc., and the source code is available.
VisAD
I also stumbled across VisAD, "a Java component library for interactive and collaborative visualization and analysis of numerical data". I haven't had time to fully understand it yet, but their file formats page includes Vis5D, HDF5, NetCDF, and others.
Vis5D+
I had seen GRASS's Grid3D, but did not see their reference to a visualization tool called Vis5d+. Vis5d+ is an open source project hosted on SourceForge, targeted at Unix platforms, billed as "a free OpenGL-based volumetric visualization program for scientific datasets in 3+ dimensions". Many of the screen shots are meterological data (clouds, isobars, etc), but it isn't restricted to that domain.
The file format is pretty flexible, but the preferred format is a 5D rectangle. Quoting from the Vis5D+ manual:
Vis5D can work with data organized as a 5-D rectangle. The first 3 dimensions are spatial: rows, columns, and levels (or latitutude, longitude, and height). The 4th dimension is time. The 5th dimension is the enumeration of multiple physical variables such as temperature, pressure, water content, etc.
There is a windows port called PC-Vis5D, but I haven't seen a download link, and the code appears to be a bit stale (the latest release was in 2000, if I'm reading the site correctly).
Volume4D PRO
There are a bunch of applications in the commercial space, including Volume4D PRO, aimed primarily at medical imaging (MRI, CT scan, etc). It is basically a 4D voxel visualization tool.
VisBio
The VisBio tool, "a biological visualization tool designed for easy visualization and analysis of multidimensional image data," also looks intriguing. It is aimed at visualization of microscopy data, but that includes 3D data. It doesn't appear to handle 4D data, but does provide links the Bio-Formats library, "a standalone Java library for reading and writing microscopy file formats". I have not had a chance to review all the formats to see if any of them include 4D capability.
They include a couple of sample movies, one of which is a volume rendering of a C. elegans embryo undergoing cell fusion. The movie isn't 4D data, but a rotation of a static model.
It runs on Windows, Mac, Linux, etc., and the source code is available.
VisAD
I also stumbled across VisAD, "a Java component library for interactive and collaborative visualization and analysis of numerical data". I haven't had time to fully understand it yet, but their file formats page includes Vis5D, HDF5, NetCDF, and others.
Tuesday, July 8, 2008
Voxels?
After more in-depth study of CompuCell3D and other papers/projects, I'm thinking that the best way to represent the biological model is using voxels/cellular automata. It certainly makes some of the rendering easier, if efficiency isn't an issue. It might make some of the computation harder, though. And of course, I've not played much at all with voxels...
According to a paper entitled "Volume Graphics", voxelization refers to taking geometric objects and converting them to a voxel representation. Going in the opposite direction is referred to as volume rendering.
A number of data structures have been developed to represent volume data, including octrees and BSP trees.
Voxels (spatial occupancy enumeration) are just one form of solid modeling; others include cellular decomposition, constructive solid geometry, etc.
According to a paper entitled "Volume Graphics", voxelization refers to taking geometric objects and converting them to a voxel representation. Going in the opposite direction is referred to as volume rendering.
A number of data structures have been developed to represent volume data, including octrees and BSP trees.
Voxels (spatial occupancy enumeration) are just one form of solid modeling; others include cellular decomposition, constructive solid geometry, etc.
Subscribe to:
Posts (Atom)