Tools for analysis of data from single-molecule fluorescence experiments in Haskell
Haskell Other
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
Documentation
hphoton-correlate
hphoton-fpga-timetagger
hphoton-io
hphoton-picoquant
hphoton-tools
hphoton
logfloat-unboxed
mixture-model @ 71e25b2
pipes-bytestring
pipes-vector
.gitignore
.gitmodules
BurstFind2.hs
README.mkd
build-sandbox.sh
hphoton-meta.cabal
plot.py
sources.txt

README.mkd

HPhoton: Tools for data analysis for fluorescence experiments

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 built
  • hphoton-fpga-timetagger is a library for reading data produced by the Goldner lab FPGA timetagger
  • hphoton-tools provides a set of user-friendly analysis tools

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 artifacts
  • alex-analysis is similar to fret-analysis but targets FRET experiments performed with alternating laser excitation (ALEX)
  • bayes-burst-find implemenst a Bayesian photon-by-photon fluorescence burst detection scheme

Installation

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

Why Haskell?

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.