Skip to content

ProlaLab/Prola2020.Sci.Adv

Repository files navigation

Support code for fluorescence decay analysis in Prola2020.Sci.Adv

Final reports are (suggested reading order):

  1. mainArgument: main argument of the article's section.
  2. explanationFigure: Script to generate explanation figure. Separate figures are also available here: area; exponentials; proportion.
  3. supplementaryMaterials: supplementary materials (statistical tables, ...).

Installation

  1. Download and install R.
  2. Install development environment. Suggested: RStudio.
  3. Download and install a LaTeX distribution.
  4. Also have git ready.
  5. Clone this repository: git clone https://github.com/ProlaLab/Prola2020.Sci.Adv.git
  6. In your R console, install the package contained in this repository and its dependencies:
if (!require(devtools))
    install.packages("devtools")
if (!require(renv))
    install.packages("renv")
options(renv.consent = TRUE)
renv::restore()
devtools::load_all()
  1. Test the package:
devtools::test()
  1. Download the raw dataset from Zenodo (DOI 10.5281/zenodo.4046133) into the inst/extdata folder.

  2. Regenerate the results by inputting the following in your R console:

source("scripts/all.R", chdir=T)

Implementation notes

  1. Optimization is in R, using the nlme and minpack.lm packages.
  2. Model is implemented in C++ for speed and thoroughly tested against a vanilla R, simpler (but much slower) implementation. The implementation uses Fast Fourier Transforms for convolutions (with RcppArmadillo) and is multithreaded (using RcppParallel). Nothing fancy, but the result is blazingly fast, allowing us to run any of our optimizations in under 10 minutes on a local machine.

Intermediary output

Intermediary data is in ./intermediaryData.

Generated intermediary reports are (suggested reading order):

  1. implementationValidation: graphical validation of accelerated C++ implementation. A companion test suite is also available in ./tests/testthat.
  2. rawDataMeta: a description of the raw data.
  3. simpleIntervals: using nlsList to get fitting, experiment by experiment.
  4. simpleIntervalsLM: using nlsLM from minpack.lm (Levenberg-Marquardt) to get fitting, experiment by experiment, with more convergence.
  5. groupNlmeDiag: diagnostic of which NLME model to use.
  6. groupNlmeMito: NLME on outer membrane.
  7. groupNlmeMitoplasts: NLME on inner membrane.

About

Support code for fluorescence decay analysis in Prola 2020-SciAdv - A complete workflow for statistical determination of decay curves parameters

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages