HPhoton is a library and suite of tools written in Haskell for working with time-stamped photon arrival data from fluorescence experiments, namely fluorescence correlation spectroscopy (FCS) and Förster resonance energy transfer (FRET).
The repository contains a number of subtrees,
hphoton
contains the core of the library, implementing much of basis on which the other components are builthphoton-fpga-timetagger
is a library for reading data produced by the Goldner lab FPGA timetaggerhphoton-tools
provides a set of user-friendly analysis tools
A number of tools are provided,
fret-analysis
provides an end-to-end analysis pipeline for FRET data, including semi-automatic correction for background, crosstalk, and gamma artifactsalex-analysis
is similar tofret-analysis
but targets FRET experiments performed with alternating laser excitation (ALEX)bayes-burst-find
implemenst a Bayesian photon-by-photon fluorescence burst detection scheme
Being written in Haskell, HPhoton requires a modern version of the
Glasgow Haskell Compiler and cabal. These are most
easily obtained as part of the Haskell Platform, which is
available for most Linux distributions, Mac OS X, and Windows.
It is recommended that the .cabal/bin
directory in your home
directory is in your environment's PATH
.
Installation is quite simple,
$ cabal update
$ cabal install cabal-meta
$ git clone --recursive https://github.com/bgamari/hphoton.git
$ cd hphoton
$ cabal-meta install
For data analysis tasks correctness, reproducibility, and ease of comprehension are paramount. Being a purely functional language, Haskell is a natural choice for this work. Its rich type system allows for strong invariants to be checked at compile time and common patterns to be effectively captured. The strong ecosystem of libraries makes even sophisticated techniques easy to implement and the high performance of the Glasgow Haskell Compiler enables implementation of algorithms which would be prohibitively slow in more traditional choices like Python.