Thursday, August 7, 2008

New personal blog

I've started a personal blog, at doug-swisher.net. I haven't decided yet whether I'm moving this blog over there or not.

Wednesday, July 30, 2008

WormCG

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.

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:

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.

Friday, April 25, 2008

Lunch Surfing

While I was eating a Chipotle burrito at my desk, I did a little web surfing. Earlier in the week, I found a paper titled Executable cell biology, by Fisher and Henzinger, so I thought I'd follow up. I found the home page for Jasmin Fisher, then took a look at her publications. She has one coming out in the new issue of IEEE/ACM TCBB, but it's not available online (yet).

I did some more clicking and searching, and somehow ended up on a paper by Honda and Nagai, et al, titled Computer simulation of emerging asymmetry in the mouse blastocyst. That article is interesting, but complex, so I followed the citations back in time. They published an article on their 3D vertex dynamics cell model in 2004, and the 2D model in 2001.

Looking at some of the citations, Honda has been at this a while, as some of the citations are nearly 20 years old. Some of the other citations also looked interesting, so I'll have to follow up on them one of these days.

Anyway, the 2D model looks like an interesting thing to try and implement before I try to implement a 3D model - 2D graphics are quite a bit easier.

Monday, April 21, 2008

Still here - really!

School has kept me way too busy the last few months, and I've neglected this work. (Taking two laboratory classes is way more work than one lecture class, even though the credit load is the same.)

I've also been working a bit on an open source project - the Civ4 World Template Builder. I'm not sure how much farther I'm going to take that code; I'm getting close to posting a link to it on the Civ Fanatics site, and if folks are interested, I'll keep plugging away.

Regardless, I want to pull this project out of mothballs and get going again. I need to explore OpenGL a bit more deeply than I have in the past, as the code just isn't working quite right. (And besides, I'm also playing with some iPhone stuff for work, which uses OpenGL.)

While doing a bit of searching, I came across a handy site, called GLProgramming. On their links page, they have links to HTML versions of the Blue Book and the Red Book, which should come in quite handy.

My goal over the next couple of weeks is to slog through chapter 3 of the Red Book, which is on viewing. Once I've gone through that, I should be able to fix the transforms in my OpenGL code so things work properly. I'll be adding more code to the OpenGLExamples spike within the DevBioSim SF project.

Sunday, January 13, 2008

Still Here

It has been one month since I've posted here - way too long. Between finals, the holidays, business travel, and things breaking around the house, and some WoW, I haven't made time for the biology stuff.

Hopefully, I'll be able to get back in the swing of things and make some headway over the next few days.