Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
!/RNA-seq
!/scRNA-seq
!/scRNA-seq-advanced
!/spatial

# still ignore data directories
**/data/*
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@ jobs:
with:
push: ${{ github.event_name == 'push' }}
secrets: |
GITHUB_TOKEN=${{ secrets.GITHUB_TOKEN }}
GITHUB_PAT=${{ secrets.GITHUB_TOKEN }}
platforms: ${{ matrix.platform }}
outputs: type=image,push-by-digest=true,name-canonical=true
labels: ${{ steps.meta.outputs.labels }}
Expand Down
37 changes: 33 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,22 @@ RUN apt-get update -qq \
&& apt-get clean \
&& rm -rf /var/lib/apt/lists/*

# Update RStudio if needed
ARG RSTUDIO_MIN=2026.09.0+174

RUN set -eux; \
ARCH=$(dpkg --print-architecture); \
CUR_VER=$(dpkg-query -W -f='${Version}' rstudio-server 2>/dev/null || echo 0); \
if dpkg --compare-versions "$CUR_VER" lt "$RSTUDIO_MIN"; then \
curl -fsSL "https://dl.dailies.rstudio.com/server/jammy/${ARCH}/rstudio-server-$(echo "$RSTUDIO_MIN" | tr + -)-${ARCH}.deb" \
-o /tmp/rstudio-server.deb; \
gdebi --non-interactive /tmp/rstudio-server.deb; \
rm /tmp/rstudio-server.deb; \
ln -fs /usr/lib/rstudio-server/bin/rstudio-server /usr/local/bin; \
ln -fs /usr/lib/rstudio-server/bin/rserver /usr/local/bin; \
fi; \
rm -rf /var/lib/apt/lists/*

# FastQC
RUN apt-get update -qq \
&& DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
Expand All @@ -77,16 +93,26 @@ RUN apt-get update -qq \
# Get rclone
RUN curl -L https://rclone.org/install.sh | bash

# Python packages
COPY requirements.txt requirements.txt
RUN pip install -r requirements.txt --break-system-packages
# Python packages in a venv that is set as default for users
COPY requirements.txt /tmp/requirements.txt
RUN python3 -m venv /opt/venv \
&& /opt/venv/bin/pip install --no-cache-dir -r /tmp/requirements.txt \
&& rm /tmp/requirements.txt \
&& chgrp -R staff /opt/venv && chmod -R g+ws /opt/venv \
&& echo '[ "$(id -u)" -ne 0 ] && export PATH=/opt/venv/bin:$PATH' > /etc/profile.d/venv.sh \
&& cat >> "$(R RHOME)/etc/Rprofile.site" <<'EOF'
Sys.setenv(
RETICULATE_PYTHON = "/opt/venv/bin/python",
VIRTUAL_ENV_DISABLE_PROMPT = "1"
)
EOF

# Use renv for R packages
WORKDIR /usr/local/renv
COPY renv.lock renv.lock
ENV RENV_CONFIG_CACHE_ENABLED=FALSE
ENV RENV_CONFIG_INSTALL_STAGED=FALSE
RUN --mount=type=secret,id=GITHUB_TOKEN,env=GITHUB_PAT,required=false \
RUN --mount=type=secret,id=GITHUB_PAT,env=GITHUB_PAT,required=false \
Rscript - <<'RSCRIPT_EOF'
# Some challenges with multi-arch builds and Bioconductor binaries mean we
# want to be sure to set up repos manually here, lest the ones recorded in the
Expand Down Expand Up @@ -128,5 +154,8 @@ RUN python3 ${template_dir}/scripts/setup-skel.py \
--skel-dir /etc/skel \
--module-file ${template_dir}/current-modules.json

# Disable Posit Assistant
RUN echo "posit-assistant-enabled=0" >> /etc/rstudio/rsession.conf

WORKDIR /home/rstudio

34 changes: 16 additions & 18 deletions renv.lock
Original file line number Diff line number Diff line change
Expand Up @@ -3218,7 +3218,7 @@
},
"RcppParallel": {
"Package": "RcppParallel",
"Version": "6.1.1",
"Version": "6.2.1",
"Source": "Repository",
"Type": "Package",
"Title": "Parallel Programming Tools for 'Rcpp'",
Expand Down Expand Up @@ -5640,8 +5640,7 @@
"URL": "https://www.rforge.net/base64enc",
"BugReports": "https://github.com/s-u/base64enc/issues",
"NeedsCompilation": "yes",
"Repository": "CRAN",
"Encoding": "UTF-8"
"Repository": "CRAN"
},
"batchelor": {
"Package": "batchelor",
Expand Down Expand Up @@ -14139,28 +14138,28 @@
},
"qs2": {
"Package": "qs2",
"Version": "0.2.2",
"Version": "0.3.1",
"Source": "Repository",
"Type": "Package",
"Title": "Efficient Serialization of R Objects",
"Date": "2026-06-02",
"Date": "2026-08-19",
"Authors@R": "c( person(\"Travers\", \"Ching\", email = \"traversc@gmail.com\", role = c(\"aut\", \"cre\", \"cph\")), person(\"Yann\", \"Collet\", role = c(\"ctb\", \"cph\"), comment = \"Yann Collet is the author of the bundled zstd\"), person(\"Facebook, Inc.\", role = \"cph\", comment = \"Facebook is the copyright holder of the bundled zstd code\"), person(\"Reichardt\", \"Tino\", role = c(\"ctb\", \"cph\"), comment = \"Contributor/copyright holder of zstd bundled code\"), person(\"Skibinski\", \"Przemyslaw\", role = c(\"ctb\", \"cph\"), comment = \"Contributor/copyright holder of zstd bundled code\"), person(\"Mori\", \"Yuta\", role = c(\"ctb\", \"cph\"), comment = \"Contributor/copyright holder of zstd bundled code\"), person(\"Francesc\", \"Alted\", role = c(\"ctb\", \"cph\"), comment = \"Shuffling routines derived from Blosc library\"))",
"Maintainer": "Travers Ching <traversc@gmail.com>",
"Description": "Streamlines and accelerates the process of saving and loading R objects, improving speed and compression compared to other methods. The package provides two compression formats: the 'qs2' format, which uses R serialization via the C API while optimizing compression and disk I/O, and the 'qdata' format, featuring custom serialization for slightly faster performance and better compression. Additionally, the 'qs2' format can be directly converted to the standard 'RDS' format, ensuring long-term compatibility with future versions of R.",
"License": "GPL-3",
"LazyData": "true",
"Biarch": "true",
"Depends": [
"R (>= 3.5.0)"
"R (>= 3.6.0)"
],
"Imports": [
"Rcpp",
"RcppParallel",
"RcppParallel (>= 6.1.1)",
"stringfish (>= 0.18.0)"
],
"LinkingTo": [
"Rcpp",
"RcppParallel"
"RcppParallel (>= 6.1.1)"
],
"Suggests": [
"knitr",
Expand All @@ -14171,11 +14170,11 @@
],
"SystemRequirements": "GNU make, C++17",
"Encoding": "UTF-8",
"RoxygenNote": "7.3.3",
"VignetteBuilder": "knitr",
"Copyright": "This package includes code from the 'zstd' library owned by Facebook, Inc. and created by Yann Collet; and code derived from the 'Blosc' library created and owned by Francesc Alted.",
"URL": "https://github.com/qsbase/qs2",
"BugReports": "https://github.com/qsbase/qs2/issues",
"Config/roxygen2/version": "8.0.0",
"NeedsCompilation": "yes",
"Author": "Travers Ching [aut, cre, cph], Yann Collet [ctb, cph] (Yann Collet is the author of the bundled zstd), Facebook, Inc. [cph] (Facebook is the copyright holder of the bundled zstd code), Reichardt Tino [ctb, cph] (Contributor/copyright holder of zstd bundled code), Skibinski Przemyslaw [ctb, cph] (Contributor/copyright holder of zstd bundled code), Mori Yuta [ctb, cph] (Contributor/copyright holder of zstd bundled code), Francesc Alted [ctb, cph] (Shuffling routines derived from Blosc library)",
"Repository": "CRAN"
Expand Down Expand Up @@ -17011,11 +17010,11 @@
},
"stringfish": {
"Package": "stringfish",
"Version": "0.19.0",
"Version": "0.19.2",
"Source": "Repository",
"Title": "Alt String Implementation",
"Date": "2026-04-18",
"Authors@R": "c( person(\"Travers\", \"Ching\", email = \"traversc@gmail.com\", role = c(\"aut\", \"cre\", \"cph\")), person(\"Phillip\", \"Hazel\", role = c(\"ctb\"), comment = \"Bundled PCRE2 code\"), person(\"Zoltan\", \"Herczeg\", role = c(\"ctb\", \"cph\"), comment = \"Bundled PCRE2 code\"), person(\"University of Cambridge\", role = c(\"cph\"), comment = \"Bundled PCRE2 code\"), person(\"Tilera Corporation\", role = c(\"cph\"), comment = \"Stack-less Just-In-Time compiler bundled with PCRE2\"), person(\"Yann\", \"Collet\", role = c(\"ctb\", \"cph\"), comment = \"Yann Collet is the author of the bundled xxHash code\"))",
"Date": "2026-08-04",
"Authors@R": "c( person(\"Travers\", \"Ching\", email = \"traversc@gmail.com\", role = c(\"aut\", \"cre\", \"cph\")), person(\"Phillip\", \"Hazel\", role = c(\"ctb\"), comment = \"Bundled PCRE2 code\"), person(\"Zoltan\", \"Herczeg\", role = c(\"ctb\", \"cph\"), comment = \"Bundled PCRE2 code\"), person(\"University of Cambridge\", role = c(\"cph\"), comment = \"Bundled PCRE2 code\"), person(\"Tilera Corporation\", role = c(\"cph\"), comment = \"Stack-less Just-In-Time compiler bundled with PCRE2\"), person(\"Yann\", \"Collet\", role = c(\"ctb\", \"cph\"), comment = \"Yann Collet is the author of the bundled xxHash code\"), person(\"Martin\", \"Leitner-Ankerl\", role = c(\"ctb\", \"cph\"), comment = \"Bundled ankerl::unordered_dense code\"))",
"Maintainer": "Travers Ching <traversc@gmail.com>",
"Description": "Provides an extendable, performant and multithreaded 'alt-string' implementation backed by 'C++' vectors and strings.",
"License": "GPL-3",
Expand All @@ -17027,7 +17026,7 @@
"SystemRequirements": "GNU make, C++17",
"LinkingTo": [
"Rcpp (>= 0.12.18.3)",
"RcppParallel (>= 5.1.4)"
"RcppParallel (>= 6.1.1)"
],
"Imports": [
"Rcpp",
Expand All @@ -17038,12 +17037,12 @@
"rmarkdown"
],
"VignetteBuilder": "knitr",
"RoxygenNote": "7.3.3",
"Copyright": "Copyright for the bundled 'PCRE2' library is held by University of Cambridge, Zoltan Herczeg and Tilera Corporation (Stack-less Just-In-Time compiler); Copyright for the bundled 'xxHash' code is held by Yann Collet.",
"Copyright": "Copyright for the bundled 'PCRE2' library is held by University of Cambridge, Zoltan Herczeg and Tilera Corporation (Stack-less Just-In-Time compiler); Copyright for the bundled 'xxHash' code is held by Yann Collet; Copyright for the bundled 'ankerl::unordered_dense' code is held by Martin Leitner-Ankerl.",
"URL": "https://github.com/traversc/stringfish",
"BugReports": "https://github.com/traversc/stringfish/issues",
"Config/roxygen2/version": "8.0.0",
"NeedsCompilation": "yes",
"Author": "Travers Ching [aut, cre, cph], Phillip Hazel [ctb] (Bundled PCRE2 code), Zoltan Herczeg [ctb, cph] (Bundled PCRE2 code), University of Cambridge [cph] (Bundled PCRE2 code), Tilera Corporation [cph] (Stack-less Just-In-Time compiler bundled with PCRE2), Yann Collet [ctb, cph] (Yann Collet is the author of the bundled xxHash code)",
"Author": "Travers Ching [aut, cre, cph], Phillip Hazel [ctb] (Bundled PCRE2 code), Zoltan Herczeg [ctb, cph] (Bundled PCRE2 code), University of Cambridge [cph] (Bundled PCRE2 code), Tilera Corporation [cph] (Stack-less Just-In-Time compiler bundled with PCRE2), Yann Collet [ctb, cph] (Yann Collet is the author of the bundled xxHash code), Martin Leitner-Ankerl [ctb, cph] (Bundled ankerl::unordered_dense code)",
"Repository": "CRAN"
},
"stringi": {
Expand Down Expand Up @@ -18124,8 +18123,7 @@
"URL": "https://www.rforge.net/uuid",
"BugReports": "https://github.com/s-u/uuid/issues",
"NeedsCompilation": "yes",
"Repository": "CRAN",
"Encoding": "UTF-8"
"Repository": "CRAN"
},
"uwot": {
"Package": "uwot",
Expand Down
Loading