Matlab code to analyze single-cell FRET dose-response experiments to determine K1/2 distribution.
To analyze FRET signals and extract the K1/2 distribution, users should run the 'Main.m' script. This script is a wrapper for running 'analyzeSensitivityDistribution()' on multiple datasets. The 'analyzeSensitivityDistribution()' accepts a single argument which is a struct called 'dataparms' which contains several fields:
- backConc = (float); 'The background ligand concentration of the foreground ligand'
- xlabels = (char); 'Titles for the x-axis of plots where ligand is used'
- Lplot = (float) [plotlevels]; 'Vector containing range of x-values for plotting
- Files = (string) [nFiles]; 'Vector containing path to .m files containing FRET data. Expected format discussed later'
- OutFolder = (string); 'Path to store outputs from analysis'
- concLevels = (float) [nFiles, nLevels]; 'Matrix where rows are the concentrations measured during the experiments in Files'
- Hillp0 = (float) (log(n), log(K)); 'vector containing initial parameters for fitting hill function'
- Normp0 = (float) (log(mu), log(sigma)); 'vector containing initial parameters for fitting lognormal CDF' The 'dataparms' parameters must be set for each experiment. Multiple datasets can be stored as different numbered entries in the dataparms struct. A default struct which organizes all the data used in the paper is provided in 'datasets.m'
There is also a required file of general analysis parameter called 'parameters.m' containing parameters that should be kept the same for all experiments. Description of these parameters are included in 'parameters.m'. Default values will work for the included data.
By default, the code is designed to work with the struct outputed by our in-house FretDataExtractionAndProcessing code which can be found at 'https://git.yale.edu/emonetlab/FretDataExtractionAndProcessing'. In principle however, it can work with any struct called EfretData with 3 fields with the same dimension:
- a = (float) [npoints]; 'A vector containing the fret signal'
- s = (float) [npoints]; 'A vector containing the stimulus level per entry in a'
- t = (float) [npoints]; 'A vector containing the timepoints for each entry in a' If using non-standard data formats, edit the combineFretFiles() function to produce a struct consistent with EfretData.
By default, outputs are stored in dataparms.OutFolder. Standard outputs include several images of the hill function and CDF fit to the data. Importantly, a struct 'plotData.mat' contains the fitted parameters per entry in dataparms, which will be used by the Figure-generating scripts.
Figure for the associated paper can be generated by running the corresponing scripts:
- Figure1.m
- Figure2.m
- Figure3.m
- Figure4.m
- Figure5.m
Plots for the paper were generated by these functions, then formated separately in adobe illustrator.
Background Foreground Dataset_dates
0 meAsp 210802,210805,220106,230417
1uM_ser meAsp 210810,210811
100uM_glu meAsp 210812,210813,230705
100uM_meAsp meAsp 210816,230717,230718
10uM_Lasp meAsp 210818,210908
0 ser 210910,211006,210913,220111
1uM_ser ser 210914,21016
100uM_meAsp ser 210920,210921
0 glu 211012,211011
100uM_meAsp glu 211013
1mM_glu meAsp 211020,211021
0 Lasp 211022,211025
100uM_meAsp Lasp 211026,211030
100uM_meAsp glu 211027,211028,211029,211202,211103
10uM_meAsp meAsp 220302,220303
10uM_meAsp+10UM_Lasp meAsp 220324,230511
100uM_meAsp+1uM_ser meAsp 220426
100uM_meAsp+1uM_ser ser 220428
0.3uM_meAsp meAsp 220615,230410
10uM_Lasp+1uM_meAsp meAsp 230330,230403
0.1uM_meAsp meAsp 230830,230830,230831
1uM_meAsp meAsp 230428,230429
2uM_LAsp+1uM_meAsp meAsp 230504,230504,230505
2uM_Lasp+10uM_meAsp meAsp 230509,230510
1uM_Lasp Lasp 230523,230524
0.5uM_Lasp Lasp 230526,230526
0.1uM_Lasp 230601,230602
0.05uM_Lasp Lasp 230605,230607,230608
1uM_Lasp+100uM_meAsp Lasp 230615,230620
10uM_Lasp+100uM_meAsp Lasp 230621,230623
10uM_Lasp Lasp 230627,230628
1uM_Lasp meAsp 230629,230704
0.01uM_Lasp Lasp 230706,230707
100uM_meAsp Lasp 230710
0.01uM_Lasp meAsp 230711
100uM_meAsp+10uM_Lasp Lasp 230714,230715
0.01uM_meAsp meAsp 230815,230816
10uM_Lasp+100uM_meAsp meAsp 230822,230823
0.1uM_Lasp+100uM_meAsp 231017,231018
10uM_ser Lasp 231207,231212