Software By James
Because I would rather spend my mental energy figuring out how to automate work flow rather than performing the actual work myself, I have authored much software to eliminate tedium from my life. I have made a majority of my software available under OSS compatible licenses. Most are scientific programs with a focus on x-ray crystallography. But I have written at least one program, Passerby, for general users. Here is a list of several of my favorites, in order of how much I like and use them and how impressive they might be to visitors:
- Passerby - A full featured, python powered, open source password keeper.
- pygmyplot - A simplified plotting library based on matplotlib.
- phyles - A python package for validating YAML config files with YAML-based schema and other general functions to simplify writing python utilities.
- pyfscache - A filesystem cache for python.
- Fluorit - A graphical program for managing fluorometric fibrillogenesis data.
- make-na - A web-based utility to easily create linear DNA and RNA models using Nucleic Acid Builder from David Case's lab at Scripps.
- Desktop DNA Calculator - A program for automating the typical DNA quantitation calculations that professional molecular biologists must do every day.
- extpdb - A program for extracting parts from pdb files.
- dssp2pdb - Converts dssp file to HELIX/SHEET type records for PDB files.
- rib_bone - An extension to Alwyn Jones's O model building program that allows interactive designation of hydrogen bonding and hydration of molecular models.
- stride2pdb - A program to convert stride output to HELIX/SHEET type records for PDB files.
In the past, I've tried to conform to a coding style but have not always been successful because my conventions have resided completely in my memory. In an effort to cement my style, I stumbled on a nice set of coding and in-line documentation guidelines at http://code.google.com/p/galaktia/wiki/StyleGuidelines. I reproduce these guidelines on my site at this page, and modify them according to my own tastes.