The CRAN/CPU core of
genoaligner builds and runs anywhere R does. When you want
a reproducible, self-contained environment – pinned R,
Rcpp and genoaligner, decoupled from whatever happens to be
installed on the host – you can build it as an Apptainer (formerly Singularity)
container with the recipe that ships in this repository.
The recipe lives at
containers/genoaligner-r-compute.def. it is kept in the
repo (and out of the CRAN tarball) so the exact construction recipe is
version-controlled next to the code it pins.
A single .sif file holding R 4.4.1, Rcpp and
genoaligner, plus the build recipe – so a colleague (or a
cluster) can reproduce the environment without trusting your machine’s
state.
The file containers/genoaligner-r-compute.def:
Bootstrap: docker
From: rocker/r-ver:4.4.1
%files
genoaligner_1.0.0.tar.gz /opt/
%post
export DEBIAN_FRONTEND=noninteractive
apt-get update
apt-get install -y --no-install-recommends g++ make ca-certificates
R -e 'install.packages("Rcpp", repos="https://cloud.r-project.org", quiet=TRUE)'
R CMD INSTALL /opt/genoaligner_1.0.0.tar.gz
R -e 'library(genoaligner); stopifnot(align_edit("ACGT","ACGT",smax=8)$score==0); cat("BUILD_CORE_OK\n")'
%runscript
exec Rscript "$@"