Final reports are (suggested reading order):
mainArgument
: main argument of the article's section.explanationFigure
: Script to generate explanation figure. Separate figures are also available here:area
;exponentials
;proportion
.supplementaryMaterials
: supplementary materials (statistical tables, ...).
- Download and install R.
- Install development environment. Suggested: RStudio.
- Download and install a LaTeX distribution.
- Also have git ready.
- Clone this repository:
git clone https://github.com/ProlaLab/Prola2020.Sci.Adv.git
- 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()
- Test the package:
devtools::test()
-
Download the raw dataset from Zenodo (DOI 10.5281/zenodo.4046133) into the
inst/extdata
folder. -
Regenerate the results by inputting the following in your R console:
source("scripts/all.R", chdir=T)
- Optimization is in R, using the
nlme
andminpack.lm
packages. - 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 (usingRcppParallel
). 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 data is in ./intermediaryData
.
Generated intermediary reports are (suggested reading order):
implementationValidation
: graphical validation of accelerated C++ implementation. A companion test suite is also available in./tests/testthat
.rawDataMeta
: a description of the raw data.simpleIntervals
: usingnlsList
to get fitting, experiment by experiment.simpleIntervalsLM
: usingnlsLM
fromminpack.lm
(Levenberg-Marquardt) to get fitting, experiment by experiment, with more convergence.groupNlmeDiag
: diagnostic of which NLME model to use.groupNlmeMito
: NLME on outer membrane.groupNlmeMitoplasts
: NLME on inner membrane.