This is a collection of some software projects that I have worked on. Most of these projects are a product of my research. Some projects link to my graduate studies research group, the Center for Computer Integrated Systems for Microscopy and Manipulation (CISMM) at the University of North Carolina at Chapel Hill.

ImageTracker

ImageTracker is a motion analysis application specifically designed for video microscopy. ImageTracker can stabilize image sequences with respect to moving objects, remove the effect of stationary components from bright field microscopy images (and other transmitted light modalities, such as X-ray), and compute and visualize dense displacement fields that explain motion in image sequences (optical flow). ImageTracker also includes a number of useful filters that can be used to preprocess image data before computing motion, such as thresholding, smoothing, and flat-fielding.

ImageTracker is available through the CISMM download page.

ImageTracker main window ImageTracker computes optical flow from microscopy videos.

Synctity

Synctity is a program for synchronizing files on multiple machines. It is essentially a graphical front end for rsync that maintains multiple profiles, making commonly-run synchronization tasks easy to perform. My goal was to make it easy to configure and run mulitple rsync commands, with common rsync options being very easy to setup while enabling more advanced configurations.

The main features of Synctity are:

  • Cross-platform synchronization (Linux and Mac OS X)
  • Synchronization across multiple machines and file system types using ssh with public/private key authorization
  • Profiles enable quickly running sets of rsync commands
  • A single configuration file stores multiple profiles
  • Common rsync options are set using check boxes that include usage hints
  • Any advanced rsync options can be configured
  • Arbitrary pre and post sync commands can be configured

I use Synctity to synchronize files on my office and home computers, to perform incremental backups on several machines (akin to Time Machine, but cross-platform), to copy image files from a computer with a built-in SDHC card reader and another computer with lots of disk space, and to publish this website.

Installation requires Python, Qt and PyQt. Here are good instructions for installing PyQt on Mac OS X and Linux.

Synctity is distributed under the terms of the GPLv3.

Download Synctity.

The Synctity installer is simply an archive of Python source files. The following commands will install and run Synctity.

$ tar xvf synctity-01.01.tar
$ python synctity/synctus.py

Synctity main window Synctity manages collections of rsync commands.

Edge Detector 1D

Edge detection is an important task in many data processing procedures. For example, edges may indicate a transition between states in FRET data or the occurrence of interesting events in force pulling experiments. Edge Detector 1D is a MATLAB application that detects edges in 1D data. The program uses a multiscale aproach to edge finding—discriminating edges from noise at a coarse scale, and refining position estimates at finer scales.

Edge Detector 1D is available through the CISMM download page.

1D edge detection Edge Detector 1D uses a multiscale approach to detect edges in 1D data sets.

MockTurtle

MockTurtle is a program that controls experiments in sea turtle navigation. MockTurtle enables researchers to design and execute experiments in which sea turtles respond to a simulation of the Earth’s magnetic field. The software provides hardware control of power supplies that drive a set of magnetic coils changing the magnetic field in a tank. The application controls LEDs that provide orientation cues in some experiments. During an experiment, the application controls the timing of changing magnetic and light cues and records sea turtle heading data from an optical encoder.

I designed and built MockTurtle 1.0 over the summer of 2005 during a collaboration with Matt Fuxjager and Lisa Mangiamele. Because this project was designed for very special hardware and experimental procedures, it does not make sense to distribute it.

MockTurtle in action MockTurtle controls sea turtle magnetic navigation experiments.

xhtml | css