Welcome to JJoseph.org

About me...

I'm located in Pittsburgh, PA. I recently completed my Ph.D. in Computational Biology at Carnegie Mellon University, in the Joint CMU-Pitt Ph.D. Program in Computational Biology. I hold a MS and BS in Computational Biology, both also from Carnegie Mellon.

To complement a rather computer-oriented course of study, my hobbies tend to be decidedly practical. Most recently, I've found great interest in vinification, baking, cooking, gardening, photography, and a bit of carpentry. Inevitably, I also maintain a number of computer and electronics projects, including (lately) analog audio, brewing automation, LED lighting control, and home utility and environment monitoring.


Contact Information:

E-mail: jacob@jjoseph.org

GPG key fingerprint: F432 5427 71B3 5371 1F89 47EC 329C 1297 9CF2 0670

On the identification and investigation of homologous gene families, with particular emphasis on the accuracy of multidomain families

Updated: 30 Aug 2012

This dissertation addresses the identification and characterization of homologous gene families in large-scale, genomic data. Particular emphasis is paid to multidomain gene families, as multidomain sequences represent at least half of the sequence universe, but present an especially challenging case for family classification. Often, these sequences are excluded from analyses because they tend to interfere with classification performed with existing methods. This thesis develops the theoretical context for family classification of datasets that contain multidomain sequences, and demonstrates the implementation necessary for performing classification on large data sets.

Five primary results are presented in this work. First, a definition of homology that encompasses the evolutionary scenarios that result in multidomain families is formulated. Second, the techniques and implementation of family classification are presented. The methodology developed takes protein sequence data as input, and, by explicitly considering the evolutionary signal of gene duplication inherent in a sequence similarity network, derives a network that is an accurate estimate of homology. Third, the structure of this network is examined, and compared to the theoretical construct of a network of homology. Fourth, an approach for predicting families from this network is developed. Importantly, a statistical framework is presented for evaluation of the result using a limited set of curated families. Finally, the interplay between domains and the clustering result is examined using an information-theoretic approach.



RGB LED Color Calibration

Updated: 12 Feb 2012

This article documents some experiments with achieving accurate, characterized, color reproduction from Lamina Atlas RGB LED lamps.

During and since construction of my driving circuitry for RGB LEDs, I have wanted to characterize the color output, both (1) for my own edification, and (2) to facilitate calibration of the color output to a defined color space, such as the sRGB of a typical computer monitor.

I recently leased an X-rite Colormunki spectrophotometer suitable for this task. The following describes the data I was able to gather, and how I've used it to calibrate for accurate color reproduction from the lamps.



500mA 5-channel RGB LED Controller / Driver

Updated: 16 Apr 2010

This project is a revision of my previous High Power RGB LED Controller. It corrects several bugs in the software, facilitating faster color updates from the computer (~250fps), allowing experimentation with fast, but 'smooth', color changes, and implements 2-way communication with the microcontroller.

Additionally, and more significantly, the hardware has been redesigned to use switching current regulators (National Semi. LM3402) for accurate LED current control, and high efficiency. One board includes the PIC microcontroller, USB communications, and one TLC5940. This handles computer communications and 12-bit pulse width modulation (PWM) intensity control for 15 channels. Another board has the LED regulators, 15 in total, to provide 500mA to each of 5 Lamina Atlas RGB LEDs. This eliminates any need for current limiting resistors, allowing for accurate balance between the colors within an LED, and between LEDs. The result is that little color and white calibration is required, which, without more equipment, was an inexact science.



APC SmartUPS Battery Float Voltage Calibration

Updated: 06 Jul 2011

Too high a battery float voltage is a problem I've seen on many of my APC SmartUPS units, and one that appears to be rather common. Sealed lead acid batteries do not tolerate too high a standby voltage, and suffer from dramatically shortened lifespan when run at elevated voltages and temperatures. In the worst case, overcharging results in elevated temperatures and rupture of the battery case. Outside of warranty, APC is of no assistance, suggesting only that I purchase a new unit. (Helpfully, they offer a discount with the trade-in.) Nonetheless, I'd like to not think of $7-800 purchases as being disposable items.

I've long sought a manner to adjust or recalibrate the battery voltage on my SmartUPS SUA1500 RM2. It would also be nice to be able to adjust the battery charging voltage to use other types of batteries; e.g., flooded lead-acid marine or car batteries. This post describes, using information from a variety of sources, an approach to recalibrate the battery voltage and other measurements on SmartUPS devices by using the PROG mode available by serial connection. It also suggests a method for modifying the UPS circuit board when PROG doesn't work, as with my SU700 units.



Meter Reading With a Webcam

Updated: 17 Nov 2009

Test Meter Overlay

The goal of this project is to read a standard 6-dial analog natural gas meter. Data is captured using an inexpensive USB webcam, and processed (minimally) using Python. As I would like to be able to measure the amount of gas used on a minute-to-minute basis, directly reading the dials on the meter (by eye or computer) does not provide enough precision. That is, the finest enumerated dial reads increments of 1000 cubic feet, more than is consumed over several cold winter days. To get around this, rotations of the lower test dials are counted over successive images, and calibrated to correspond to overall.



High Power RGB LED Controller

Updated: 17 Nov 2009

This is an ongoing project to control a number (currently 5) of Lamina Atlas high power (350-500mA) LEDs. Current progress includes:

  • PCB artwork (in Eagle) with connections for 5 RGB LEDs.
  • Firmware for a Microchip PIC16f887 microcontroller to interface between the FTDI 245R USB chip and a number of Texas Instruments TLC5940 constant current LED drivers.
  • Python ctypes interface to libftdi.
  • A simple Python interface to communicate color commands by USB
  • Ongoing work includes an intuitive graphical user interface, music synchronization, and a reworking of the hardware to utilize switching constant current regulators.

See 500mA 5-channel RGB LED Controller / Driver, for an updated design.



No, I'm not on Facebook

Updated: 17 Nov 2009

No, I'm not on Facebook -- but I once was.

Some years ago, I did succumb to the Facebook peer pressure and joined the site. Unsure of any other value, this did cease the flood of invitations by email. Eventually, I added a photo, listed my contact information, and confirmed friendship with, well, my friends. In time, I became increasingly cynical: Why should I have Facebook friends when I can have real friends? Is Facebook only a popularity contest? Did I have an interest in spying on old pals' online social lives? (Simply, no.) Perhaps most importantly, how does publishing a network of my (virtual) friends erode my privacy?



1-Wire Relay / Lighting Controller

Updated: 17 Nov 2009

An 8-channel 120V relay controller, this project was originally intended only as a brewing and vinification process controller.

Since its construction was concurrent with a dance party, it was first tested as a dance floor lighting controller. The controller is comprised of a DS2408 8-channel switch, and eight 20A relays.



Adding SSL Certificates to a Motorola Slvr

Updated: 17 Nov 2009

Motorola provides no method of permanently accepting SSL certificates or documented method of adding certificate authorities to the phone. For many services, I cannot justify the expense of signed SSL certificates. Often, I'm one of very few users and am happy to install or manually accept such a certificate when needed. With my previous cellular telephones, particularly the Nokia 6600, adding certificates proved trivial. However, upon switching to a Cingular-branded Motorola Slvr L7, warnings of such self-signed certificates while accessing my email and web services seemed unavoidable. Alas, I have installed a new CA...



LED Water Lamp

Updated: 17 Nov 2009

Construction of a computer-controlled color LED bubbling water lamp. Three LED channels (RGB) are controlled by PWM for 24-bit color support. A 16F88 PIC is used to control a MAX6966 PWM LED chip. Computer communication is by the Dallas 1-Wire interface, via a DS2408 PIO chip.