Skip to content

tritemio/FRETBursts

Repository files navigation

FRETBursts

DOI TravisCI Build Status AppVeyor Build status

Quick links: Reference documentation, FRETBursts tutorials, bioRxiv paper

Latest News

2017-11-20 - Migration to OpenSMFS Organization

We moved the FRETBursts repository on GitHub to the OpenSMFS organization. The Open Single-Molecule Fluorescence Spectroscopy (OpenSMFS) organization collects open source software for single-molecule spectroscopy (e.g. single-molecule FRET, Fluorescence Correlation spectroscopy, etc...). FRETBursts joins the company of PyBroMo (a freely-diffusing smFRET simulator) and pycorrelate (cross-correlation for FCS).

The new FRETBursts repository URL is github.com/OpenSMFS/FRETBursts and the FRETBursts "landing page" is now opensmfs.github.io/FRETBursts/. FRETBursts Documentation is hosted on ReadTheDocs and did not change URL. CI services have been migrated. Open issues will be migrated soon.

Latest release 0.6.5 (2017-08-25)

For updates on the latest FRETBursts release see release notes.

2016-08-17

Our software paper describing FRETBursts has been peer-reviewed and published by PLOS ONE:

2016-03-20

New online service to run FRETBursts without installation:

For more info see this blog post.

2016-02-19

Check out our new paper describing smFRET bursts analysis and FRETBursts on the bioRxiv:

See also this blog post announcing it.

Project Description

FRETBursts is a open source software for burst analysis of freely-diffusing single-molecule FRET (smFRET) experiments.

FRETBursts and Reproducibility

FRETBursts is an effort to bring reproducible computing to the field of single-molecule confocal microscopy. It provides a well-tested implementation of state-of-the-art algorithms for confocal smFRET analysis. The strong focus on computational reproducibility is reflected in the notebook-based interface. By leveraging a workflow based on Jupyter Notebook, FRETBursts facilitates saving all the analysis parameters, comments and results in a single re-runnable document.

FRETBursts has full supports for Photon-HDF5, an open file format for single-molecule fluorescence experiments (Ingargiola 2016).

Feedback and Contributions

FRETBursts is open source and openly developed on GitHub.

We encourage users to report issues or ask questions using the GitHub Issue. In the open source spirit, contributions are welcome and managed using GitHub Pull Request. Any level of contribution is accepted, from fixing typos, improving the docs (most editing can be done online directly) or implementing new features (see github help page). For questions on how to contribute please open a GitHub Issue.

Technical Features

FRETBursts allows to analyze both single-spot and multi-spot smFRET data. Alternating laser excitation (ALEX) scheme is supported.

Main analysis features includes:

  • background estimation as a function of time (for example in 30s windows)
  • sliding-window burst search with adaptive (background-dependent) rate-threshold. No timetrace binning required. Both single (APBS) and dual-channel burst search (DCBS).
  • burst corrections: background, D-spectral leakage (bleed-through), A-direct excitation, gamma-factor.
  • per-burst statistics (# photons, burst duration, E, S, peak rate in burst, etc...)
  • post-burst-search selection functions (for ex.: burst size, burst width, E, S, ...). Defining a new burst selection criterium requires only a few lines of code.
  • fit routines for FRET efficiency (multi-model histogram fit, MLE Poisson models, weighted least squares models, weighted expectation maximization, etc...)
  • Plot function: FRETBursts includes a large set of modular plot functions for background, time-traces, rate-traces, E, S, ALEX histograms, weighted kernel density estimation (KDE) and more. Thanks to the excellent Matplotlib library, FRETBursts can produce publication-quality plots out of the box.

Additionally FRETBursts includes notebooks to perform Burst Variance Analysis (BVA) (Torella 2011) and 2CDE (Tomov 2012).

Motivations

This software aims to be a reference implementation for both established and novel algorithms related to bursts analysis of smFRET data.

Despite the broad diffusion of smFRET experiments on freely diffusing molecules, before FRETBursts, no complete smFRET burst analysis software was freely available on internet. Each group have re-implemented the analysis in-house with little or no code sharing. This is clearly sub-optimal either because specific advances in the burst analysis are not readily available to a wide public of smFRET users and because subtle differences in implementation make the comparison of experiments performed by different groups problematic.

We envision FRETBursts both as a state-of-the-art burst analysis package for smFRET experimenters, and as a toolkit for advanced users willing to develop new algorithms or to compare alternative implementations.

Software Environment

FRETBursts is written in the python programming language using the standard scientific-python stack of libraries (Numpy, Scipy, Matplotlib, IPython). Not only FRETBursts but also the entire software stack on which it is built upon are open-source and freely available to any scientist.

FRETBursts uses consolidated software engineering techniques (version control, unit testing, regression testing) and a workflow based on Jupyter Notebook to ensure robustness and reproducibility of the results. For example, when loading FRETBursts, the current version (down to the commit ID) is always displayed (and saved together with the notebook).

We provide a list of tutorials (notebooks) that can be viewed online, edited and re-executed. The reference documentation is generated by Sphinx extracting the docstrings from the source code.

Installation

Briefly, the installation requires installing a scientific python distribution (such as Continuum Anaconda) and then installing the fretbursts python package from the anaconda.org channel called tritemio.

For installation instructions see:

Getting Started

The official FRETBursts documentation is built and hosted by ReadTheDocs:

We provide a list of Jupyter notebooks showing typical workflows for smFRET analysis and illustrating FRETBursts functionalities. These notebooks can be either viewed online or downloaded and executed locally using publically available datasets (see below). You can read the tutorials online at the following locations:

You can download the tutorials from the FRETBursts_notebooks repository.

NOTE: A copy of the tutorials (without output) is included in the FRETBursts repository.

FRETBursts notebooks use public smFRET datasets that are automatically downloaded when each notebook is executed for the first time.

Development

The documentation is built using Sphinx (1.2.2 or later) and the napoleon extension. A notebook that builds the HTML docs can be found in notebooks/dev/docs/.

The unit tests are written with pytest. Notebooks that execute the unit tests can be found in notebooks/dev/test/. In the same folder a notebook for regression testing is provided.

Acknowledgments

This work was supported by NIH grants R01 GM069709 and R01 GM095904.

License and Copyrights

FRETBursts - A bursts analysis toolkit for single and multi-spot smFRET data.

Copyright (C) 2013-2016 The Regents of the University of California, Antonino Ingargiola and contributors.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License version 2, as published by the Free Software Foundation.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You can find a full copy of the license in the file LICENSE.txt