Replication code
This is the R code behind Zuzana Irsova’s comment, prepared for the Institute for Replication (I4R) Forensic AI Games, on Plaza-Florido, Altmäe, Esteban, Löf, Radom-Aizik, and Ortega (2021), “Cardiorespiratory fitness in children with overweight/obesity: Insights into the molecular mechanisms”, Scandinavian Journal of Medicine & Science in Sports 31(11), 2083-2091. The code runs the authors’ limma script on their deposited counts, changing only the input file names. With the current limma default, 273 genes have an adjusted p value below 0.05. With the voom default of limma before version 3.66 there are 257, one of them a spike-in row, which leaves the 256 genes of the article’s Supplementary Table 1. The code then compares six specifications, fits the additive model described in the Methods against the three-way interaction coefficient that the script tests, checks how many hits rest on very low counts, repeats the analysis on permuted data, and recomputes the p values of Table 1 from the printed statistics.
Run it
Install limma and edgeR from Bioconductor once:
install.packages("BiocManager")
BiocManager::install(c("limma", "edgeR"))
Then run the script in the folder where you saved it:
Rscript replicate.R > output.txt 2>&1
On the first run the script downloads the authors’ four files from their
OSF project into a data/ folder and checks their
MD5 sums; the data are not copied here. A few comparisons also use material from the article, such
as its Supporting Information, which is not distributed here either; if those files are missing,
the script skips each such comparison with a one-line note. A run takes 11 to 12 minutes with 6
cores, almost all of it in the permutations; NDRAW at the top of the script sets the
number of draws. It was tested with R 4.5.1, limma 3.66.0 and edgeR 4.8.2 (statmod 1.5.2, locfit
1.5-9.12).
Files
- replicate.R, the code
- output.txt, the output of a reference run
The code is under the MIT licence. The data belong to the original authors.