this is for holding javascript data
Antonino Ingargiola edited Supporting_Information.tex
about 8 years ago
Commit id: 6dbe9f5ad351738e8cb57d3e2432e948ffe2cd7e
deletions | additions
diff --git a/Supporting_Information.tex b/Supporting_Information.tex
index 8b85eda..4769cf7 100644
--- a/Supporting_Information.tex
+++ b/Supporting_Information.tex
...
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.