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.
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
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.
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.