Antonino Ingargiola edited Supporting_Information.tex  about 8 years ago

Commit id: 6dbe9f5ad351738e8cb57d3e2432e948ffe2cd7e

deletions | additions      

       

a Pull Request. The open source nature of FRETBursts guarantees that  contributions will remain available to the entire single-molecule   community.  \subsection{Timestamps and Burst Data}  \label{sec:burststimes}  Beyond providing prepackaged functions for established methods,   FRETBursts also provides the infrastructure for exploring new analysis approaches.  Users can easily get timestamps (or selection masks) for any photon stream.  Core burst data (start and stop times, indexes   and derived quantities for each burst) are stored in \verb|Bursts| objects  (\href{http://fretbursts.readthedocs.org/en/latest/burstsearch.html}{link}).  This object provides a simple and well-tested interface (100 \% unit-test coverage)   to access and manipulate burst data. \verb|Bursts| are created from a sequence of start/stop   times and indexes, while all the other fields are automatically  computed. \verb|Bursts|'s methods allow to recompute indexes relative to a different photon  selection or recompute start and stop times relative to a new timestamps array.  Additional methods perform fusion of nearby bursts or combination of two set of bursts   (time intersection or union). This functionality is used for example to implement   the DCBS.  In conclusion, \verb|Bursts| efficiently implements all the common operations performed   with burst data, providing and easy-to-use interface and well tested algorithms.   Leveraging \verb|Bursts| methods, users can implement new types of analysis without   wasting time implementing (and debugging) standard manipulation routines.  Examples of working directly with timestamps, masks (i.e. photon selections) and   burst data are provided in one of the FRETBursts notebooks (\href{http://nbviewer.jupyter.org/github/tritemio/FRETBursts_notebooks/blob/master/notebooks/Example%20-%20Working%20with%20timestamps%20and%20bursts.ipynb}{link}).   Section~\ref{sec:bva} provides a complete example on using FRETBurts to implement   custom burst analysis techniques.  \paragraph{Python details}  Timestamps are stored in the \verb|Data| attribute \verb|ph_times_m|, which is a list  or arrays, one array per excitation spot. In single-spot measurements the full  timestamps array is accessed as \verb|Data.ph_times_m[0]|. To get timestamps  of arbitrary photon streams, users can call \verb|Data.get_ph_times|  (\href{http://fretbursts.readthedocs.org/en/latest/data_class.html?highlight=get_ph_times#fretbursts.burstlib.Data.get_ph_times}{link}).  Photon streams are selected from the full (all-photons) timestamps array using  boolean masks, which can be obtained calling \verb|Data.get_ph_mask|  (\href{http://fretbursts.readthedocs.org/en/latest/data_class.html?highlight=get_ph_mask#fretbursts.burstlib.Data.get_ph_mask}{link}).  All burst data (e.g. start-stop times and indexes, burst duration, etc.) are stored in   \verb|Bursts| objects. For uniformity, the bursts start-stop  indexes are always referring to the all-photons timestamps array,  regardless of the photon stream used for burst search.  \verb|Bursts| objects   internally store only start and stop times and indexes.   The other \verb|Bursts| attributes (duration, photon counts, etc.) are computed on-the-fly   when requested (using class properties), thus minimizing the object state.   \verb|Bursts| support iteration  with performances similar to iterating through rows of 2D row-major numpy arrays.