While working for a cryobiology group at the University of Alberta, under the supervision of Dr. L.E. McGann, I developed the following software for use in the lab by the scientists and students there. I have written many other pieces of science related software, but the ones described below are the most developed.
This software is the result of my masters thesis. The software consists of two components: one to create simulations, and one to run the simulations. The current program for creating simulations takes a text file similar in format to a windows INI file and converts it to the format needed by the software that executes the simulation. This software allows one to create a simulation for any arbitrary biological tissue, containing any arbitrary number of aqueous solutes. I am considering writing a GUI based simulation creation program to be used with the simulation back-end. This project is currently being hampered by the fact that it will not result in me getting paid right away. As soon as I ensure that I can feed myself now, I will start work on this project. The simulation back-end is almost completely developed and would only require superficial modification to make it a commercial application.
Although its name implies that this software is used to analyze cartilage, in practice it has become very useful for analyzing all sorts of flourescent images.The software's primary use is as an electronic cell counter. Given an image acquired from a flourescent microscope and containing red and/or green cells, the software will first enhance the image by increasing contrast, color saturation, and removing background noise. Then, cells are enumerated and reported to a text file which can be loaded into most spreadsheet software for further analysis. Information such as cell position, size, color, and intensity are all reported in the text file.
This software has not been updated since 1996, but a decision was recently (Nov 2004) made to release the software as free software under the terms of the General Public License. At the moment, this is a source code only release. If you wish to make use of this software, you will need to find a way to compile it. For this reason, the software primarily targeted at developers.
You can download the source code by choosing one of these files: cartanal-2.12.tar.gz (79kiB) or cartanal-2.12.zip (89kiB).
The Tracker was the first program I was enlisted to write when I started working with the cryobiology group. At the time it was in development, the lab was using a diffusion chamber mounted on a microscope stage to observe the changes in cells that result from changes in osmotic pressure. The software was designed to digitize images from video tape using an Oculus 200 frame grabber and then optically measure the cross-sectional area of cells visible in the image. The area measurement process consists of two steps:
The software was designed to grab multiple consecutive frames at reasonably high speeds and to analyze each of them to determine cell volume as a function of time (assuming cells are spherical, cell volume is a function of cross-sectional area). Being that this software was written over 8 years ago for a 286 PC running DOS, the software is highly optimized and has all time critical methods written in machine language. A consequence of the way this software is written is that the software cannot be easily rewritten to make use of newer operating systems and video capture boards. Such a rewrite is, however, a low priority task, and may someday be completed.
Cell Size Analyzer (CSA) is actually a commercially available product from the Great Canadian Computer Company (GCCC). Working with custom hardware also developed by the GCCC, the CSA program can be used to acquire cell volume verses time data using an electronic particle counter. The software measures and records the volume of each particle (cell) as it passes through a small orifice in the presence of an electrolyte solution. Then, the CSA program can present several different plots of the data, such as average volume verses time, or volume distributions. Also, various statistics, such as mean volume and standard error, can be requested.