I use Linux
here's a picture of me from my unfocused cpia usb cam,
captured with Linux
I use, program for, and admin Linux.
Linux is a free version of Unix that runs efficiently on a wide range of
hardware, including basically all commodity Intel x86 hardware, from 386's
to quad Xeon's, as well as higher-performance processors such as Sparc
and Alphas. Linux is an Open
Source project, a logical extension of the transparency which makes
Unix such a powerful and easy-to-use system.
I am a scientific programmer. For several years, I've been working
on analysis and visualization tools for fMRI and ERP. I do my
programming in C++, using Xlib for Unix systems. My current projects
and interests include:
-
flexible and efficient access to very large raw fMRI datasets.
All my data-handling code is based on the idea that data should consist
of a human-readable text header, coupled with chunks of binary data, preferably
in native format. On modern hardware, there is no practical overhead
to parsing the header, and it has several extremely valuable properties:
immediately readable, portable to any platform, and completely extensible
(since it has no fixed size, and new fields, even comments can be added
at will.) I use mmap() to read both the header and data. My
current project is to permit flexible specification of the conditions (events)
during an fMRI experiment, so as not to constrain what type of analysis
can be performed on the data.
-
study of the parameters to fMRI experiments. For instance, I'd like
to characterize the noise and drift that fMRI experiments typically
struggle with, such as patient motion and aliased physiological signals.
I'll also soon be exploring the space of scanning parameters, such as Tr,
Te, flip-angle, voxel volume, and how these interact with the BOLD timecourse.
The immediate goal is to determine good parameters for the fMRI psychology
experiments I participate in; ultimately, I'd like to experiment with
high temporal resolution studies.
-
effective visualization of fMRI results. I've been working for around
5 years on fairly traditional viewing techniques, overlaying fMRI significance
measures onto anatomical images. This happens in a viewer I've constructed,
which offers very rapid visualization of orthogonal slices across the acquisition
volume, as well as the traditional in-plane overlays. I'm interested
in pursuing cortical flattening (which is currently impemented, but somewhat
limited) and some kind of transparency rendering. This viewer has
traditionally avoided touching raw data, but I'd like to change that as
well. It's very instructive to look at the raw timecourse for a voxel
or VOI, in addition to merely its significance leven and anatomical location.
-
further work on fMRI statistics. In my former lab,
we were mostly concerned with sensitivity: obtaining clean, signficant
results to very subtle contrasts in condition. This led us to use
a lot of signal averaging, and to studying voxel timecourses in fourier-space,
rather than in the more traditional blocked analyses (T-tests, ANOVA).
Fourier analysis yeilds an F-distributed score like Anova, but handles
periodic but not stimulus-related changes in voxel intensity better.
More recently, it's become very trendy to do "event-related" fMRI, which
shares some of the noise advantages of oscillatory paradigms, but permits
more flexible timing of stimuli. My code supports ER fMRI as well.
-
analysis and visualization of ERP data. ERP is quite a lot like fMRI
data, though 2d, rather than 3d, and much faster in timecourse. Most
ERP analysis immediately averages all same-condition timecourses, which
means that ERP has comparatively tiny data. I find traditional
ERP analysis to be very primitive, since no attempt is made to quantify
(or even use) single-trial variance, since SNR is assumed to be too low;
blindly averaging data throws away information. Traditional ERP visualization
is similarly stultifying, as is "peakology", the dominant mode of analysis.
I hope to improve the situation.
-
I do all my programming using a set of libraries that provide high-level,
but still very efficient layers on top of the raw Unix/X functionality.
Basix, my X library, is much simpler than other C++ X systems, and mostly
predates them.
I enjoy living in Hamilton, Ontario, Canada, with Judith Shedden, my
wonderful wife and a professor at McMaster. We share three perfect
black cats in a nice house, enjoy cooking, wine, X Files and our cable
modem.