Following background estimation, burst search is the next step of
the analysis.
In FRETBursts, a standard burst search using a single photon stream
(see section \ref{sec:burstsearch_intro}) is performed by calling the
Data.burst_search
method
(link).
For example, the following command:
performs a burst search on all photons
(ph_sel=Ph_sel('all')
), with a count rate threshold equal to 6 times the
local background rate (F=6
), using 10 consecutive photons to compute the
local count rate (m=10
).
A different photon stream, threshold (\(F\)) or number of photons \(m\) can be selected
by passing different values.
These parameters are good general-purpose starting point for smFRET analysis
but they can be adjusted if needed.
Note that the previous burst search does not perform any burst size selection (however, by definition, the minimum bursts size is effectively \(m\)). An additional parameter \(L\) can be passed to impose a minimum burst size before any correction. However, it is recommended to select bursts only after applying background corrections, as discussed in the next section \ref{sec:burstsel}.
It might sometimes be useful to specify a fixed photon-rate threshold, instead
of a threshold depending on the background rate, as in the previous example. In
this case, instead of \(F\), the argument min_rate_cps
can be used to
specify the threshold (in counts-per-second). For example, a burst search with
a 50 kcps threshold is performed as follows:
Finally, to perform a DCBS burst search (or in general an AND gate burst search,
see section \ref{sec:burstsearch_intro}) we use the function
burst_search_and_gate
(link),
as illustrated in the following example:
The last command puts the burst search results in a new copy of the
Data
variable d
(in this example the copy is called d_dcbs
).
Since FRETBursts shares the timestamps and detectors arrays between
different copies of Data
objects, the memory usage is minimized, even when
several copies are created.
Note that, while d.burst_search()
is a method of Data
,
bext.burst_search_and_gate()
is a function in the bext
module
taking a Data
object as a first argument and returning a new
Data
object.
The function burst_search_and_gate
accepts optional arguments,
ph_sel1
and ph_sel2
, whose default values correspond to the
classical DCBS photon stream selection (see section \ref{sec:burstsearch_intro}).
These arguments can be specified to select different photon streams than those used in
a classical DCBS.
The bext
module (link)
collects “plugin” functions that provides additional algorithms
for processing Data
objects.
In μs-ALEX, there are 3 important correction parameters: \(\gamma\)-factor,
donor leakage into the acceptor channel
and acceptor direct excitation by the donor excitation laser \cite{Lee_2005}.
These corrections can be applied to burst data by simply assigning values
to the respective Data
attributes:
These attributes can be assigned either before or after the burst search. In the latter case, existing burst data are automatically updated using the new correction parameters.
These correction factors can be used to display corrected FRET distributions. However, when the goal is to fit the FRET efficiency of sub-populations, it is simpler to fit the background-corrected PR histogram and then correct the population-level PR value (see SI in \cite{Lee_2005}). Correcting PR of each population (instead of correcting the data in each burst) avoids distortion of the FRET distribution and keeps peaks of static FRET subpopulations closer to the ideal binomial statistics \cite{Gopich_2007}.