This notebook performs data analysis for the paper:
Multi-spot single-molecule FRET: high-throughput analysis of freely diffusing molecules
Ingargiola et al. PLOS ONE (2017)
doi:10.1371/journal.pone.0175766
Here you will find the dsDNA experiements analysis. For the realtime kinetics analysis see the notebook:
You will find below the list of notebooks executed during the analysis. The text explains the
purpose of each notebook. After each run_notebook
command, there are links to access the
output notebooks (i.e. the executed version which contains all the results).
You will also find links to the eventual CSV files saved.
Jump to the section generating a particular figure:
Figure 2. FRET efficiency for 5 dsDNA samples estimated using different methods.
- See section μs-ALEX: Corrected E figure
Figure 3. DCR-corrected total count rate as a function of the pixel.
- See section Signal vs spot
Figure 6. Leakage coefficient for different samples and spots.
- See section Leakage coefficient
Figure 5. Burst statistics versus spot.
- See section Burst statistics vs spot
Figure 8. µs-ALEX vs multispot burst data distributions.
- See section Burst statistics vs usALEX
Figure 7. FRET efficiency versus dye separation for the multispot experiments.
- See section FRET vs distance figure
This is "master" notebook that sequentially executes all the other notebooks. By running this notebook you can reproduce all the results presented in the paper.
We save intermediate results in text CSV files that can be easily tracked by git. The files are shown as tables or links after each notebook is executed.
Some of the μs-ALEX notebooks are executed several times, once for each of the 5 dsDNA measurement. These are called template notebooks. When a template notebook is executed a set of output notebooks is generated, one for each sample. After the execution, the cell will show links to the template notebook (unexecuted, contains no output) and to the output notebooks for each sample. These output notebooks are meant to be read-only and are used to inspect the full analysis results for each sample.
After the links, we show a table containing summary data saved when executing the notebook (a row for each sample and a column for each variable). To find where a specific variable is computed, you can search the variable name in the output notebooks (one for each sample).
Notebooks not taking any parameter are execute only once. The output cell shows only two links, one for the template notebook and one for the executed notebook.
In [1]:
from notebook_runner import run_notebook, run_notebook_template
Here we keep track of all the libraries versions used for the execution.
In [2]:
%load_ext version_information
In [3]:
%version_information numpy, scipy, matplotlib, tables, pandas, lmfit, seaborn, fretbursts
Out[3]:
We start the analyis by processing and fiting the raw PR values for the 5 us-ALEX measurements. The only burst correction here applied is the background correction.
The same analysis is performed for different burst searches, as indicated in the notebook file name suffix:
In [4]:
nb_name = 'usALEX-5samples-PR-raw'
run_notebook_template(nb_name, ph_sel='all-ph')
In [5]:
nb_name = 'usALEX-5samples-PR-raw'
run_notebook_template(nb_name, ph_sel='DexDem')
In [6]:
nb_name = 'usALEX-5samples-PR-raw'
run_notebook_template(nb_name, ph_sel='Dex')
In [7]:
nb_name = 'usALEX-5samples-PR-raw-AND-gate'
run_notebook_template(nb_name)
Here we estimate the donor leakage coefficient from the Donor-only peak positions in the Raw PR histograms.
The computation is performed by the following notebook:
In [8]:
run_notebook('usALEX - Corrections - Leakage fit')
The previous notebook uses data from usALEX-5samples-PR-raw-DexDem.csv
and saves:
In this section we extract the direct excitation parameter by fitting the S peak position of the Acceptor-only population.
For comparison 2 burst searches are performed:
The all-ph burst search provides less accurate results and is performed only to show the improvement of the more appropriate AexAem burst search.
In [9]:
nb_name = 'usALEX-5samples-PR-raw-dir_ex_aa-fit'
run_notebook_template(nb_name, ph_sel='all-ph')
In [10]:
nb_name = 'usALEX-5samples-PR-raw-dir_ex_aa-fit'
run_notebook_template(nb_name, ph_sel='AexAem')
In [11]:
run_notebook('usALEX - Corrections - Direct excitation fit')
The previous notebook saves:
Here we compute the $\gamma$-factor for the μs-ALEX measurements.
First we reprocess the μs-ALEX measurements including background, leakage and direct excitation correction (standard PR). Then, for the fitted $E$ and $S$ peak position for the FRET population we fit the $\gamma$-factor.
In [12]:
nb_name = 'usALEX-5samples-PR-leakage-dir-ex-all-ph'
run_notebook_template(nb_name)
The notebook usALEX - Corrections - Gamma factor fit fits the γ-factor from $E$ and $S$ values computed in the previous section.
In [13]:
run_notebook('usALEX - Corrections - Gamma factor fit')
The previous notebooks saves:
In [14]:
nb_name = 'usALEX-5samples-E-corrected-all-ph'
run_notebook_template(nb_name)
Here we compute the "physical" direct direct excitation coefficient:
$$d_{T} = \frac{\sigma_{D_{ex}}^A}{\sigma_{D_{ex}}^D} $$This coefficient depends only on the fluorophores absorption cross-section at donor excitation wavelength. This coefficient can also be used to correct non-ALEX measurements.
Additionally, the next notebook summarizes the estimated FRET efficiencies obtained with different methods and corrections. A table with fit errors and number of bursts is also included.
In [15]:
run_notebook('usALEX - Corrections - Direct excitation physical parameter')
The previous notebook saves:
The last two files contain, respectively, the corrected E values fitted with various methods (Gauss, KDE, SNA, etc.) and the fit errors.
The following notebook uses the data usALEX-5samples-E-all-methods.csv
to create the final figure for the paper (for details and fit errors see the previous notebook usALEX - Corrections - Direct excitation physical parameter
):
In [16]:
run_notebook('Figure - usALEX 5 dsDNA samples FRET')
Figure 1. FRET efficiency for 5 dsDNA samples estimated using different methods.
Donor leakage:
Direct Excitation:
dir_ex_S_kde_w
)Gamma factor fit:
Corrected E
E_kde_w
)SNA Analysis
Plotting
Plot background fits:
In [17]:
run_notebook('Multi-spot 5-Samples analysis - Background')
Compute detectors DCR:
In [18]:
run_notebook('8-pixel DCR')
The previous notebook saves:
In [19]:
run_notebook('Multi-spot 5-Samples analysis - Signal vs spot')
Figure 2. DCR-corrected total count rate as a function of the pixel.
In [20]:
run_notebook('Multi-spot 5-Samples analysis - Leakage coefficient fit')
This saves the following tables for leakage coefficients and number of bursts:
Next, we take sample-wise or channel-wise averages and plot summaries:
In [21]:
run_notebook('Multi-spot 5-Samples analysis - Leakage coefficient - Summary')
This saves the following tables of averages leakage coefficients:
In [22]:
run_notebook('Multi-spot 5-Samples analysis - Burst Statistics')
In [23]:
run_notebook('dsDNA - Burst Statistics - MultiSpot-vs-SingleSpot')
Figure 7. µs-ALEX vs multispot burst data distributions.
Then we perform the complete burst analysis by running:
In [24]:
run_notebook('Multi-spot 5-Samples analysis - PR-raw')
The previous notebook saves the tables:
Gamma fitting for the multispot is perfomed here:
In [25]:
run_notebook('Multi-spot Gamma Fitting')
The previous notebooks saves:
In [26]:
run_notebook('Figure - FRET vs distance')
In [8]:
nb_name = 'Multi-spot vs usALEX FRET histogram comparison'
run_notebook_template(nb_name, save_data=False)
NOTE: Due to different concentrations and background levels, the comparison of FRET histograms is only qualitative. In particular, even though the duration of the multispot measurements are exactly 1/8 the duration of the μs-ALEX measurements, the number of bursts cannot be directly compared due to different burst rates.