From 145484b0d47b033d6ea5672f8c7cc719c61e13ba Mon Sep 17 00:00:00 2001 From: Joshua Shapiro Date: Thu, 18 Apr 2024 09:47:14 -0400 Subject: [PATCH 01/28] Add pip-tools based requirements files --- .pre-commit-config.yaml | 37 +- docker/make-requirements.sh | 28 + docker/renv_slim.lock | 1447 ++++++++++++++++++++++++++ docker/requirements.in | 7 + docker/requirements.txt | 226 ++-- docker/requirements_slim.in | 2 + docker/requirements_slim.txt | 18 + docker/scpcatools-slim.Dockerfile | 27 + docker/scripts/install_scpca_deps.sh | 2 + requirements.txt | 1 - 10 files changed, 1635 insertions(+), 160 deletions(-) create mode 100644 docker/make-requirements.sh create mode 100644 docker/renv_slim.lock create mode 100644 docker/requirements.in create mode 100644 docker/requirements_slim.in create mode 100644 docker/requirements_slim.txt create mode 100644 docker/scpcatools-slim.Dockerfile delete mode 120000 requirements.txt diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index ff20b3e6..57e9d555 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -1,15 +1,15 @@ # All available hooks: https://pre-commit.com/hooks.html # R specific hooks: https://github.com/lorenzwalthert/precommit repos: -- repo: https://github.com/lorenzwalthert/precommit + - repo: https://github.com/lorenzwalthert/precommit rev: v0.3.2.9027 hooks: - - id: style-files + - id: style-files args: [--style_pkg=styler, --style_fun=tidyverse_style] - # codemeta must be above use-tidy-description when both are used - # - id: codemeta-description-updated - - id: use-tidy-description - - id: spell-check + # codemeta must be above use-tidy-description when both are used + # - id: codemeta-description-updated + - id: use-tidy-description + - id: spell-check exclude: > (?x)^( .*\.[rR]| @@ -35,22 +35,23 @@ repos: (.*/|)DESCRIPTION| (.*/|)NAMESPACE| (.*/|)renv/settings\.dcf| - (.*/|)renv\.lock| - (.*/|)requirements\.txt| - (.*/|)Dockerfile| + (.*/|)renv.*\.lock| + (.*/|)requirements.*\.in| + (.*/|)requirements.*\.txt| + (.*/|).*Dockerfile| (.*/|)WORDLIST| \.github/workflows/.*| data/.*| )$ - - id: lintr - - id: parsable-R - - id: no-browser-statement - - id: no-debug-statement - - id: deps-in-desc -- repo: https://github.com/pre-commit/pre-commit-hooks + - id: lintr + - id: parsable-R + - id: no-browser-statement + - id: no-debug-statement + - id: deps-in-desc + - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.5.0 hooks: - - id: check-added-large-files - args: ['--maxkb=200'] - - id: end-of-file-fixer + - id: check-added-large-files + args: ["--maxkb=200"] + - id: end-of-file-fixer exclude: '\.Rd' diff --git a/docker/make-requirements.sh b/docker/make-requirements.sh new file mode 100644 index 00000000..0627eebf --- /dev/null +++ b/docker/make-requirements.sh @@ -0,0 +1,28 @@ +#!/bin/bash +set -euo pipefail +# This script is used to generate requirements files for R and python packages +# Requires that the `pip-tools` python package is installed. + +# Set the working directory to the directory of this file +cd "$(dirname "${BASH_SOURCE[0]}")" + +# Python package lists +pip-compile --no-annotate --output-file=requirements.txt requirements.in +pip-compile --no-annotate --output-file=requirements_slim.txt requirements_slim.in + +# move up a directory for R scripts to capture the package files +cd .. +Rscript - < + unlist() |> + unique() |> + renv::record(lockfile = lockfile) +EOF diff --git a/docker/renv_slim.lock b/docker/renv_slim.lock new file mode 100644 index 00000000..fcbd83d9 --- /dev/null +++ b/docker/renv_slim.lock @@ -0,0 +1,1447 @@ +{ + "R": { + "Version": "4.3.3", + "Repositories": [ + { + "Name": "BioCsoft", + "URL": "https://p3m.dev/bioconductor/packages/3.18/bioc" + }, + { + "Name": "BioCann", + "URL": "https://p3m.dev/bioconductor/packages/3.18/data/annotation" + }, + { + "Name": "BioCexp", + "URL": "https://p3m.dev/bioconductor/packages/3.18/data/experiment" + }, + { + "Name": "BioCworkflows", + "URL": "https://p3m.dev/bioconductor/packages/3.18/workflows" + }, + { + "Name": "BioCbooks", + "URL": "https://p3m.dev/bioconductor/packages/3.18/books" + }, + { + "Name": "CRAN", + "URL": "https://p3m.dev/cran/latest" + } + ] + }, + "Bioconductor": { + "Version": "3.18" + }, + "Packages": { + "BH": { + "Package": "BH", + "Version": "1.84.0-0", + "Source": "Repository", + "Repository": "RSPM", + "Hash": "a8235afbcd6316e6e91433ea47661013" + }, + "Biobase": { + "Package": "Biobase", + "Version": "2.62.0", + "Source": "Bioconductor", + "Requirements": [ + "BiocGenerics", + "R", + "methods", + "utils" + ], + "Hash": "38252a34e82d3ff6bb46b4e2252d2dce" + }, + "BiocGenerics": { + "Package": "BiocGenerics", + "Version": "0.48.1", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "R", + "graphics", + "methods", + "stats", + "utils" + ], + "Hash": "e34278c65d7dffcc08f737bf0944ca9a" + }, + "BiocManager": { + "Package": "BiocManager", + "Version": "1.30.22", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "utils" + ], + "Hash": "d57e43105a1aa9cb54fdb4629725acb1" + }, + "BiocNeighbors": { + "Package": "BiocNeighbors", + "Version": "1.20.2", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "BiocParallel", + "Matrix", + "Rcpp", + "RcppHNSW", + "S4Vectors", + "methods", + "stats" + ], + "Hash": "c5c8ade5852fd3b25c66ec28873d00f1" + }, + "BiocParallel": { + "Package": "BiocParallel", + "Version": "1.36.0", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "BH", + "R", + "codetools", + "cpp11", + "futile.logger", + "methods", + "parallel", + "snow", + "stats", + "utils" + ], + "Hash": "6d1689ee8b65614ba6ef4012a67b663a" + }, + "BiocVersion": { + "Package": "BiocVersion", + "Version": "3.18.1", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "2ecaed86684f5fae76ed5530f9d29c4a" + }, + "DelayedArray": { + "Package": "DelayedArray", + "Version": "0.28.0", + "Source": "Bioconductor", + "Requirements": [ + "BiocGenerics", + "IRanges", + "Matrix", + "MatrixGenerics", + "R", + "S4Arrays", + "S4Vectors", + "SparseArray", + "methods", + "stats", + "stats4" + ], + "Hash": "0e5c84e543a3d04ce64c6f60ed46d7eb" + }, + "DelayedMatrixStats": { + "Package": "DelayedMatrixStats", + "Version": "1.24.0", + "Source": "Bioconductor", + "Requirements": [ + "DelayedArray", + "IRanges", + "Matrix", + "MatrixGenerics", + "S4Vectors", + "methods", + "sparseMatrixStats" + ], + "Hash": "71c2d178d33f9d91999f67dc2d53b747" + }, + "DropletUtils": { + "Package": "DropletUtils", + "Version": "1.22.0", + "Source": "Bioconductor", + "Requirements": [ + "BH", + "BiocGenerics", + "BiocParallel", + "DelayedArray", + "DelayedMatrixStats", + "GenomicRanges", + "HDF5Array", + "IRanges", + "Matrix", + "R.utils", + "Rcpp", + "Rhdf5lib", + "S4Vectors", + "SingleCellExperiment", + "SummarizedExperiment", + "beachmat", + "dqrng", + "edgeR", + "methods", + "rhdf5", + "scuttle", + "stats", + "utils" + ], + "Hash": "be3893d30c97591f1d3ec6f053830c3a" + }, + "GenomeInfoDb": { + "Package": "GenomeInfoDb", + "Version": "1.38.8", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "BiocGenerics", + "GenomeInfoDbData", + "IRanges", + "R", + "RCurl", + "S4Vectors", + "methods", + "stats", + "stats4", + "utils" + ], + "Hash": "155053909d2831bfac154a1118151d6b" + }, + "GenomeInfoDbData": { + "Package": "GenomeInfoDbData", + "Version": "1.2.11", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "10f32956181d1d46bd8402c93ac193e8" + }, + "GenomicRanges": { + "Package": "GenomicRanges", + "Version": "1.54.1", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "BiocGenerics", + "GenomeInfoDb", + "IRanges", + "R", + "S4Vectors", + "XVector", + "methods", + "stats", + "stats4", + "utils" + ], + "Hash": "7e0c1399af35369312d9c399454374e8" + }, + "HDF5Array": { + "Package": "HDF5Array", + "Version": "1.30.1", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "BiocGenerics", + "DelayedArray", + "IRanges", + "Matrix", + "R", + "Rhdf5lib", + "S4Arrays", + "S4Vectors", + "methods", + "rhdf5", + "rhdf5filters", + "stats", + "tools", + "utils" + ], + "Hash": "9b8deb4fd34fa439c16c829457d1968f" + }, + "IRanges": { + "Package": "IRanges", + "Version": "2.36.0", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "BiocGenerics", + "R", + "S4Vectors", + "methods", + "stats", + "stats4", + "utils" + ], + "Hash": "f98500eeb93e8a66ad65be955a848595" + }, + "MASS": { + "Package": "MASS", + "Version": "7.3-60.0.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "grDevices", + "graphics", + "methods", + "stats", + "utils" + ], + "Hash": "b765b28387acc8ec9e9c1530713cb19c" + }, + "Matrix": { + "Package": "Matrix", + "Version": "1.6-5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "grDevices", + "graphics", + "grid", + "lattice", + "methods", + "stats", + "utils" + ], + "Hash": "8c7115cd3a0e048bda2a7cd110549f7a" + }, + "MatrixGenerics": { + "Package": "MatrixGenerics", + "Version": "1.14.0", + "Source": "Bioconductor", + "Requirements": [ + "matrixStats", + "methods" + ], + "Hash": "088cd2077b5619fcb7b373b1a45174e7" + }, + "R.methodsS3": { + "Package": "R.methodsS3", + "Version": "1.8.2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "utils" + ], + "Hash": "278c286fd6e9e75d0c2e8f731ea445c8" + }, + "R.oo": { + "Package": "R.oo", + "Version": "1.26.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "R.methodsS3", + "methods", + "utils" + ], + "Hash": "4fed809e53ddb5407b3da3d0f572e591" + }, + "R.utils": { + "Package": "R.utils", + "Version": "2.12.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "R.methodsS3", + "R.oo", + "methods", + "tools", + "utils" + ], + "Hash": "3dc2829b790254bfba21e60965787651" + }, + "R6": { + "Package": "R6", + "Version": "2.5.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "470851b6d5d0ac559e9d01bb352b4021" + }, + "RColorBrewer": { + "Package": "RColorBrewer", + "Version": "1.1-3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "45f0398006e83a5b10b72a90663d8d8c" + }, + "RCurl": { + "Package": "RCurl", + "Version": "1.98-1.14", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "bitops", + "methods" + ], + "Hash": "47f648d288079d0c696804ad4e55197e" + }, + "Rcpp": { + "Package": "Rcpp", + "Version": "1.0.12", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "methods", + "utils" + ], + "Hash": "5ea2700d21e038ace58269ecdbeb9ec0" + }, + "RcppHNSW": { + "Package": "RcppHNSW", + "Version": "0.6.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "Rcpp", + "methods" + ], + "Hash": "1f2dc32c27746a35196aaf95adb357be" + }, + "Rhdf5lib": { + "Package": "Rhdf5lib", + "Version": "1.24.2", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "R" + ], + "Hash": "3cf103db29d75af0221d71946509a30c" + }, + "S4Arrays": { + "Package": "S4Arrays", + "Version": "1.2.1", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "BiocGenerics", + "IRanges", + "Matrix", + "R", + "S4Vectors", + "abind", + "crayon", + "methods", + "stats" + ], + "Hash": "3213a9826adb8f48e51af1e7b30fa568" + }, + "S4Vectors": { + "Package": "S4Vectors", + "Version": "0.40.2", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "BiocGenerics", + "R", + "methods", + "stats", + "stats4", + "utils" + ], + "Hash": "1716e201f81ced0f456dd5ec85fe20f8" + }, + "SingleCellExperiment": { + "Package": "SingleCellExperiment", + "Version": "1.24.0", + "Source": "Bioconductor", + "Requirements": [ + "BiocGenerics", + "DelayedArray", + "GenomicRanges", + "S4Vectors", + "SummarizedExperiment", + "methods", + "stats", + "utils" + ], + "Hash": "e21b3571ce76eb4dfe6bf7900960aa6a" + }, + "SparseArray": { + "Package": "SparseArray", + "Version": "1.2.4", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "BiocGenerics", + "IRanges", + "Matrix", + "MatrixGenerics", + "R", + "S4Arrays", + "S4Vectors", + "XVector", + "matrixStats", + "methods", + "stats" + ], + "Hash": "391092e7b81373ab624bd6471cebccd4" + }, + "SummarizedExperiment": { + "Package": "SummarizedExperiment", + "Version": "1.32.0", + "Source": "Bioconductor", + "Requirements": [ + "Biobase", + "BiocGenerics", + "DelayedArray", + "GenomeInfoDb", + "GenomicRanges", + "IRanges", + "Matrix", + "MatrixGenerics", + "R", + "S4Arrays", + "S4Vectors", + "methods", + "stats", + "tools", + "utils" + ], + "Hash": "caee529bf9710ff6fe1776612fcaa266" + }, + "XVector": { + "Package": "XVector", + "Version": "0.42.0", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "BiocGenerics", + "IRanges", + "R", + "S4Vectors", + "methods", + "tools", + "utils", + "zlibbioc" + ], + "Hash": "65c0b6bca03f88758f86ef0aa18c4873" + }, + "abind": { + "Package": "abind", + "Version": "1.4-5", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "methods", + "utils" + ], + "Hash": "4f57884290cc75ab22f4af9e9d4ca862" + }, + "beachmat": { + "Package": "beachmat", + "Version": "2.18.1", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "BiocGenerics", + "DelayedArray", + "Matrix", + "Rcpp", + "SparseArray", + "methods" + ], + "Hash": "c1c423ca7149d9e7f55d1e609342c2bd" + }, + "bitops": { + "Package": "bitops", + "Version": "1.0-7", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "b7d8d8ee39869c18d8846a184dd8a1af" + }, + "bluster": { + "Package": "bluster", + "Version": "1.12.0", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "BiocNeighbors", + "BiocParallel", + "Matrix", + "Rcpp", + "S4Vectors", + "cluster", + "igraph", + "methods", + "stats", + "utils" + ], + "Hash": "fca0d5ffad6380f13cad4d7855107aef" + }, + "broom": { + "Package": "broom", + "Version": "1.0.5", + "Source": "Repository" + }, + "cli": { + "Package": "cli", + "Version": "3.6.2", + "Source": "Repository" + }, + "cluster": { + "Package": "cluster", + "Version": "2.1.6", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "grDevices", + "graphics", + "stats", + "utils" + ], + "Hash": "0aaa05204035dc43ea0004b9c76611dd" + }, + "codetools": { + "Package": "codetools", + "Version": "0.2-20", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "61e097f35917d342622f21cdc79c256e" + }, + "colorspace": { + "Package": "colorspace", + "Version": "2.1-0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "grDevices", + "graphics", + "methods", + "stats" + ], + "Hash": "f20c47fd52fae58b4e377c37bb8c335b" + }, + "conflicted": { + "Package": "conflicted", + "Version": "1.2.0", + "Source": "Repository" + }, + "cpp11": { + "Package": "cpp11", + "Version": "0.4.7", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "5a295d7d963cc5035284dcdbaf334f4e" + }, + "crayon": { + "Package": "crayon", + "Version": "1.5.2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "grDevices", + "methods", + "utils" + ], + "Hash": "e8a1e41acf02548751f45c718d55aa6a" + }, + "dbplyr": { + "Package": "dbplyr", + "Version": "2.5.0", + "Source": "Repository" + }, + "dplyr": { + "Package": "dplyr", + "Version": "1.1.4", + "Source": "Repository" + }, + "dqrng": { + "Package": "dqrng", + "Version": "0.3.2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "BH", + "R", + "Rcpp", + "sitmo" + ], + "Hash": "824df2aeba88d701df5e79018b35b815" + }, + "dtplyr": { + "Package": "dtplyr", + "Version": "1.3.1", + "Source": "Repository" + }, + "edgeR": { + "Package": "edgeR", + "Version": "4.0.16", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "R", + "Rcpp", + "graphics", + "limma", + "locfit", + "methods", + "stats", + "utils" + ], + "Hash": "a0405c7890708dcb53809d46758800f4" + }, + "fansi": { + "Package": "fansi", + "Version": "1.0.6", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "grDevices", + "utils" + ], + "Hash": "962174cf2aeb5b9eea581522286a911f" + }, + "farver": { + "Package": "farver", + "Version": "2.1.1", + "Source": "Repository", + "Repository": "RSPM", + "Hash": "8106d78941f34855c440ddb946b8f7a5" + }, + "fishpond": { + "Package": "fishpond", + "Version": "2.8.0", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "GenomicRanges", + "IRanges", + "Matrix", + "S4Vectors", + "SingleCellExperiment", + "SummarizedExperiment", + "abind", + "graphics", + "gtools", + "jsonlite", + "matrixStats", + "methods", + "qvalue", + "stats", + "svMisc", + "utils" + ], + "Hash": "60ebe3366ccb6c1a11a99682f56f2a2f" + }, + "flexmix": { + "Package": "flexmix", + "Version": "2.3-19", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "grDevices", + "graphics", + "grid", + "lattice", + "methods", + "modeltools", + "nnet", + "stats", + "stats4", + "utils" + ], + "Hash": "0cb3c4b251c2d3fd5923d3e7e6021ee2" + }, + "forcats": { + "Package": "forcats", + "Version": "1.0.0", + "Source": "Repository" + }, + "formatR": { + "Package": "formatR", + "Version": "1.14", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "63cb26d12517c7863f5abb006c5e0f25" + }, + "futile.logger": { + "Package": "futile.logger", + "Version": "1.4.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "futile.options", + "lambda.r", + "utils" + ], + "Hash": "99f0ace8c05ec7d3683d27083c4f1e7e" + }, + "futile.options": { + "Package": "futile.options", + "Version": "1.0.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "0d9bf02413ddc2bbe8da9ce369dcdd2b" + }, + "generics": { + "Package": "generics", + "Version": "0.1.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "methods" + ], + "Hash": "15e9634c0fcd294799e9b2e929ed1b86" + }, + "ggplot2": { + "Package": "ggplot2", + "Version": "3.5.0", + "Source": "Repository" + }, + "glue": { + "Package": "glue", + "Version": "1.7.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "methods" + ], + "Hash": "e0b3a53876554bd45879e596cdb10a52" + }, + "googledrive": { + "Package": "googledrive", + "Version": "2.1.1", + "Source": "Repository" + }, + "googlesheets4": { + "Package": "googlesheets4", + "Version": "1.1.1", + "Source": "Repository" + }, + "gtable": { + "Package": "gtable", + "Version": "0.3.4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "cli", + "glue", + "grid", + "lifecycle", + "rlang" + ], + "Hash": "b29cf3031f49b04ab9c852c912547eef" + }, + "gtools": { + "Package": "gtools", + "Version": "3.9.5", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "methods", + "stats", + "utils" + ], + "Hash": "588d091c35389f1f4a9d533c8d709b35" + }, + "haven": { + "Package": "haven", + "Version": "2.5.4", + "Source": "Repository" + }, + "hms": { + "Package": "hms", + "Version": "1.1.3", + "Source": "Repository" + }, + "httr": { + "Package": "httr", + "Version": "1.4.7", + "Source": "Repository" + }, + "igraph": { + "Package": "igraph", + "Version": "2.0.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "Matrix", + "R", + "cli", + "cpp11", + "grDevices", + "graphics", + "lifecycle", + "magrittr", + "methods", + "pkgconfig", + "rlang", + "stats", + "utils", + "vctrs" + ], + "Hash": "c3b7d801d722e26e4cd888e042bf9af5" + }, + "isoband": { + "Package": "isoband", + "Version": "0.2.7", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "grid", + "utils" + ], + "Hash": "0080607b4a1a7b28979aecef976d8bc2" + }, + "jsonlite": { + "Package": "jsonlite", + "Version": "1.8.8", + "Source": "Repository" + }, + "labeling": { + "Package": "labeling", + "Version": "0.4.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "graphics", + "stats" + ], + "Hash": "b64ec208ac5bc1852b285f665d6368b3" + }, + "lambda.r": { + "Package": "lambda.r", + "Version": "1.2.4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "formatR" + ], + "Hash": "b1e925c4b9ffeb901bacf812cbe9a6ad" + }, + "lattice": { + "Package": "lattice", + "Version": "0.22-6", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "grDevices", + "graphics", + "grid", + "stats", + "utils" + ], + "Hash": "cc5ac1ba4c238c7ca9fa6a87ca11a7e2" + }, + "lifecycle": { + "Package": "lifecycle", + "Version": "1.0.4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "cli", + "glue", + "rlang" + ], + "Hash": "b8552d117e1b808b09a832f589b79035" + }, + "limma": { + "Package": "limma", + "Version": "3.58.1", + "Source": "Bioconductor", + "Requirements": [ + "R", + "grDevices", + "graphics", + "methods", + "statmod", + "stats", + "utils" + ], + "Hash": "74c3b64358e0be7edc3ecd130816dd3f" + }, + "locfit": { + "Package": "locfit", + "Version": "1.5-9.9", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "lattice" + ], + "Hash": "3885127e04b35dafded049075057ad83" + }, + "lubridate": { + "Package": "lubridate", + "Version": "1.9.3", + "Source": "Repository" + }, + "magrittr": { + "Package": "magrittr", + "Version": "2.0.3", + "Source": "Repository" + }, + "matrixStats": { + "Package": "matrixStats", + "Version": "1.3.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "4b3ea27a19d669c0405b38134d89a9d1" + }, + "mgcv": { + "Package": "mgcv", + "Version": "1.9-1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "Matrix", + "R", + "graphics", + "methods", + "nlme", + "splines", + "stats", + "utils" + ], + "Hash": "110ee9d83b496279960e162ac97764ce" + }, + "miQC": { + "Package": "miQC", + "Version": "1.10.0", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "R", + "SingleCellExperiment", + "flexmix", + "ggplot2", + "splines" + ], + "Hash": "5d3660451d88509307ce0b0e48748109" + }, + "modelr": { + "Package": "modelr", + "Version": "0.1.11", + "Source": "Repository" + }, + "modeltools": { + "Package": "modeltools", + "Version": "0.2-23", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "methods", + "stats", + "stats4" + ], + "Hash": "f5a957c02222589bdf625a67be68b2a9" + }, + "munsell": { + "Package": "munsell", + "Version": "0.5.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "colorspace", + "methods" + ], + "Hash": "4fd8900853b746af55b81fda99da7695" + }, + "nlme": { + "Package": "nlme", + "Version": "3.1-164", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "graphics", + "lattice", + "stats", + "utils" + ], + "Hash": "a623a2239e642806158bc4dc3f51565d" + }, + "nnet": { + "Package": "nnet", + "Version": "7.3-19", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "stats", + "utils" + ], + "Hash": "2c797b46eea7fb58ede195bc0b1f1138" + }, + "pillar": { + "Package": "pillar", + "Version": "1.9.0", + "Source": "Repository" + }, + "pkgconfig": { + "Package": "pkgconfig", + "Version": "2.0.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "utils" + ], + "Hash": "01f28d4278f15c76cddbea05899c5d6f" + }, + "plyr": { + "Package": "plyr", + "Version": "1.8.9", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "Rcpp" + ], + "Hash": "6b8177fd19982f0020743fadbfdbd933" + }, + "purrr": { + "Package": "purrr", + "Version": "1.0.2", + "Source": "Repository" + }, + "qvalue": { + "Package": "qvalue", + "Version": "2.34.0", + "Source": "Bioconductor", + "Requirements": [ + "R", + "ggplot2", + "grid", + "reshape2", + "splines" + ], + "Hash": "76fc42834c44b69e4021f6ade524d299" + }, + "ragg": { + "Package": "ragg", + "Version": "1.3.0", + "Source": "Repository" + }, + "readr": { + "Package": "readr", + "Version": "2.1.5", + "Source": "Repository" + }, + "readxl": { + "Package": "readxl", + "Version": "1.4.3", + "Source": "Repository" + }, + "renv": { + "Package": "renv", + "Version": "1.0.7", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "utils" + ], + "Hash": "397b7b2a265bc5a7a06852524dabae20" + }, + "reprex": { + "Package": "reprex", + "Version": "2.1.0", + "Source": "Repository" + }, + "reshape2": { + "Package": "reshape2", + "Version": "1.4.4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "Rcpp", + "plyr", + "stringr" + ], + "Hash": "bb5996d0bd962d214a11140d77589917" + }, + "rhdf5": { + "Package": "rhdf5", + "Version": "2.46.1", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "R", + "Rhdf5lib", + "S4Vectors", + "methods", + "rhdf5filters" + ], + "Hash": "b0a244022c3427cd8213c33804c6b5de" + }, + "rhdf5filters": { + "Package": "rhdf5filters", + "Version": "1.14.1", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "Rhdf5lib" + ], + "Hash": "d27a2f6a89def6388fad5b0aae026220" + }, + "rlang": { + "Package": "rlang", + "Version": "1.1.3", + "Source": "Repository" + }, + "rstudioapi": { + "Package": "rstudioapi", + "Version": "0.16.0", + "Source": "Repository" + }, + "rvest": { + "Package": "rvest", + "Version": "1.0.4", + "Source": "Repository" + }, + "scales": { + "Package": "scales", + "Version": "1.3.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "R6", + "RColorBrewer", + "cli", + "farver", + "glue", + "labeling", + "lifecycle", + "munsell", + "rlang", + "viridisLite" + ], + "Hash": "c19df082ba346b0ffa6f833e92de34d1" + }, + "scuttle": { + "Package": "scuttle", + "Version": "1.12.0", + "Source": "Bioconductor", + "Requirements": [ + "BiocGenerics", + "BiocParallel", + "DelayedArray", + "DelayedMatrixStats", + "GenomicRanges", + "Matrix", + "Rcpp", + "S4Vectors", + "SingleCellExperiment", + "SummarizedExperiment", + "beachmat", + "methods", + "stats", + "utils" + ], + "Hash": "1412c4b6dfd8de528e1101e493e66a02" + }, + "sitmo": { + "Package": "sitmo", + "Version": "2.0.2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "Rcpp" + ], + "Hash": "c956d93f6768a9789edbc13072b70c78" + }, + "snow": { + "Package": "snow", + "Version": "0.4-4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "utils" + ], + "Hash": "40b74690debd20c57d93d8c246b305d4" + }, + "sparseMatrixStats": { + "Package": "sparseMatrixStats", + "Version": "1.14.0", + "Source": "Bioconductor", + "Requirements": [ + "Matrix", + "MatrixGenerics", + "Rcpp", + "matrixStats", + "methods" + ], + "Hash": "49383d0f6c6152ff7cb594f254c23cc8" + }, + "statmod": { + "Package": "statmod", + "Version": "1.5.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "graphics", + "stats" + ], + "Hash": "26e158d12052c279bdd4ba858b80fb1f" + }, + "stringi": { + "Package": "stringi", + "Version": "1.8.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "stats", + "tools", + "utils" + ], + "Hash": "058aebddea264f4c99401515182e656a" + }, + "stringr": { + "Package": "stringr", + "Version": "1.5.1", + "Source": "Repository" + }, + "svMisc": { + "Package": "svMisc", + "Version": "1.2.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "methods", + "stats", + "tools", + "utils" + ], + "Hash": "b13f5680860f67c32ccb006ad38f24f4" + }, + "tibble": { + "Package": "tibble", + "Version": "3.2.1", + "Source": "Repository" + }, + "tidyr": { + "Package": "tidyr", + "Version": "1.3.1", + "Source": "Repository" + }, + "tidyselect": { + "Package": "tidyselect", + "Version": "1.2.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "cli", + "glue", + "lifecycle", + "rlang", + "vctrs", + "withr" + ], + "Hash": "829f27b9c4919c16b593794a6344d6c0" + }, + "tximport": { + "Package": "tximport", + "Version": "1.30.0", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "methods", + "stats", + "utils" + ], + "Hash": "6e9621b0f1bf9398255f32c7000a7e16" + }, + "utf8": { + "Package": "utf8", + "Version": "1.2.4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "62b65c52671e6665f803ff02954446e9" + }, + "vctrs": { + "Package": "vctrs", + "Version": "0.6.5", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "cli", + "glue", + "lifecycle", + "rlang" + ], + "Hash": "c03fa420630029418f7e6da3667aac4a" + }, + "viridisLite": { + "Package": "viridisLite", + "Version": "0.4.2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "c826c7c4241b6fc89ff55aaea3fa7491" + }, + "withr": { + "Package": "withr", + "Version": "3.0.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "grDevices", + "graphics" + ], + "Hash": "d31b6c62c10dcf11ec530ca6b0dd5d35" + }, + "xml2": { + "Package": "xml2", + "Version": "1.3.6", + "Source": "Repository" + }, + "zlibbioc": { + "Package": "zlibbioc", + "Version": "1.48.2", + "Source": "Bioconductor", + "Repository": "RSPM", + "Hash": "2344be62c2da4d9e9942b5d8db346e59" + } + } +} diff --git a/docker/requirements.in b/docker/requirements.in new file mode 100644 index 00000000..9263ab62 --- /dev/null +++ b/docker/requirements.in @@ -0,0 +1,7 @@ +anndata~=0.10 +jax[cpu] +pandas +scanpy~=1.10 +scvi-tools~=1.1 +torch +torchvision diff --git a/docker/requirements.txt b/docker/requirements.txt index 86a4b11b..12a9aa2e 100644 --- a/docker/requirements.txt +++ b/docker/requirements.txt @@ -1,151 +1,95 @@ -absl-py==1.4.0 -aiohttp==3.9.0 +# +# This file is autogenerated by pip-compile with Python 3.11 +# by the following command: +# +# pip-compile --no-annotate --output-file=requirements.txt requirements.in +# +absl-py==2.1.0 +aiohttp==3.9.5 aiosignal==1.3.1 -anndata==0.9.1 -annotated-types==0.5.0 -anyio==3.7.1 -arrow==1.2.3 -astunparse==1.6.3 -async-timeout==4.0.2 -attrs==23.1.0 -backoff==2.2.1 -beautifulsoup4==4.12.2 -blessed==1.20.0 -cached-property==1.5.2 -cachetools==5.3.0 -certifi==2023.7.22 -charset-normalizer==3.1.0 -chex==0.1.7 -click==8.1.6 +anndata==0.10.7 +array-api-compat==1.6 +attrs==23.2.0 +chex==0.1.86 contextlib2==21.6.0 -contourpy==1.0.7 -croniter==1.4.1 -cycler==0.11.0 -dateutils==0.6.12 -deepdiff==6.3.1 -dm-tree==0.1.8 +contourpy==1.2.1 +cycler==0.12.1 docrep==0.3.2 -et-xmlfile==1.1.0 -etils==1.2.0 -exceptiongroup==1.1.3 -fastapi==0.101.1 -filelock==3.12.0 -flatbuffers==23.3.3 -flax==0.6.9 -fonttools==4.39.3 -frozenlist==1.3.3 -fsspec==2023.4.0 -gast==0.4.0 -google-auth==2.17.3 -google-auth-oauthlib==1.0.0 -google-pasta==0.2.0 -grpcio==1.54.0 -h11==0.14.0 -h5py==3.8.0 -idna==3.4 -importlib-metadata==6.6.0 -importlib-resources==5.12.0 -inquirer==3.1.3 -itsdangerous==2.1.2 -jax==0.4.8 -jaxlib==0.4.7 -Jinja2==3.1.2 -joblib==1.2.0 -keras==2.12.0 -kiwisolver==1.4.4 -libclang==16.0.0 -lightning==2.0.7 -lightning-cloud==0.5.37 -lightning-utilities==0.8.0 -llvmlite==0.40.1 -Markdown==3.4.3 -markdown-it-py==2.2.0 -MarkupSafe==2.1.2 -matplotlib==3.7.1 +etils[epath,epy]==1.8.0 +filelock==3.13.4 +flax==0.8.2 +fonttools==4.51.0 +frozenlist==1.4.1 +fsspec[http]==2024.3.1 +h5py==3.11.0 +idna==3.7 +importlib-resources==6.4.0 +jax[cpu]==0.4.26 +jaxlib==0.4.26 +jinja2==3.1.3 +joblib==1.4.0 +kiwisolver==1.4.5 +legacy-api-wrap==1.4 +lightning==2.1.4 +lightning-utilities==0.11.2 +llvmlite==0.42.0 +markdown-it-py==3.0.0 +markupsafe==2.1.5 +matplotlib==3.8.4 mdurl==0.1.2 ml-collections==0.1.1 -ml-dtypes==0.1.0 +ml-dtypes==0.4.0 mpmath==1.3.0 -msgpack==1.0.5 -mudata==0.2.2 -multidict==6.0.4 -multipledispatch==0.6.0 -natsort==8.3.1 -nest-asyncio==1.5.6 -networkx==3.1 -numba==0.57.1 -numpy==1.24.4 -numpyro==0.12.1 -oauthlib==3.2.2 -openpyxl==3.1.2 +msgpack==1.0.8 +mudata==0.2.3 +multidict==6.0.5 +multipledispatch==1.0.0 +natsort==8.4.0 +nest-asyncio==1.6.0 +networkx==3.3 +numba==0.59.1 +numpy==1.26.4 +numpyro==0.14.0 opt-einsum==3.3.0 -optax==0.1.5 -orbax-checkpoint==0.2.1 -ordered-set==4.1.0 -packaging==23.1 -pandas==2.0.1 -patsy==0.5.3 -Pillow==10.1.0 -protobuf==4.22.3 -psutil==5.9.5 -pyasn1==0.5.0 -pyasn1-modules==0.3.0 -pydantic==2.1.1 -pydantic_core==2.4.0 -Pygments==2.15.1 -PyJWT==2.8.0 -pynndescent==0.5.10 -pyparsing==3.0.9 +optax==0.2.2 +orbax-checkpoint==0.5.9 +packaging==24.0 +pandas==2.2.2 +patsy==0.5.6 +pillow==10.3.0 +protobuf==5.26.1 +pygments==2.17.2 +pynndescent==0.5.12 +pyparsing==3.1.2 pyro-api==0.1.2 -pyro-ppl==1.8.4 -python-dateutil==2.8.2 -python-editor==1.0.4 -python-multipart==0.0.6 -pytorch-lightning==2.0.7 -pytz==2023.3 -PyYAML==6.0 -readchar==4.0.5 -requests==2.31.0 -requests-oauthlib==1.3.1 -rich==13.3.5 -rsa==4.9 -scanpy==1.9.3 -scikit-learn==1.3.0 -scipy==1.11.1 -scvi-tools==1.0.3 -seaborn==0.12.2 +pyro-ppl==1.9.0 +python-dateutil==2.9.0.post0 +pytorch-lightning==2.2.2 +pytz==2024.1 +pyyaml==6.0.1 +rich==13.7.1 +scanpy==1.10.1 +scikit-learn==1.4.2 +scipy==1.13.0 +scvi-tools==1.1.2 +seaborn==0.13.2 session-info==1.0.0 six==1.16.0 -sniffio==1.3.0 -soupsieve==2.4.1 -sparse==0.14.0 -starlette==0.27.0 -starsessions==1.3.0 -statsmodels==0.14.0rc0 -stdlib-list==0.8.0 -sympy==1.11.1 -tensorboard==2.12.2 -tensorboard-data-server==0.7.0 -tensorboard-plugin-wit==1.8.1 -tensorflow-estimator==2.12.0 -tensorstore==0.1.36 -termcolor==2.3.0 -threadpoolctl==3.1.0 -toolz==0.12.0 -torch==2.0.1 -torchmetrics==0.11.4 -tqdm==4.65.0 -traitlets==5.9.0 -typing_extensions==4.7.1 -tzdata==2023.3 -umap-learn==0.5.3 -urllib3==2.1.0 -uvicorn==0.23.2 -wcwidth==0.2.6 -websocket-client==1.6.1 -websockets==11.0.3 -Werkzeug==3.0.1 -wrapt==1.14.1 -xarray==2023.7.0 -yarl==1.9.2 -zipp==3.15.0 +statsmodels==0.14.2 +stdlib-list==0.10.0 +sympy==1.12 +tensorstore==0.1.56 +threadpoolctl==3.4.0 +toolz==0.12.1 +torch==2.2.2 +torchmetrics==1.3.2 +torchvision==0.17.2 +tqdm==4.66.2 +typing-extensions==4.11.0 +tzdata==2024.1 +umap-learn==0.5.6 +yarl==1.9.4 +zipp==3.18.1 + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/docker/requirements_slim.in b/docker/requirements_slim.in new file mode 100644 index 00000000..c90c929e --- /dev/null +++ b/docker/requirements_slim.in @@ -0,0 +1,2 @@ +# requirements.in packages for minimal ScPCA workflows +anndata~=0.10 diff --git a/docker/requirements_slim.txt b/docker/requirements_slim.txt new file mode 100644 index 00000000..68ac8d03 --- /dev/null +++ b/docker/requirements_slim.txt @@ -0,0 +1,18 @@ +# +# This file is autogenerated by pip-compile with Python 3.11 +# by the following command: +# +# pip-compile --no-annotate --output-file=requirements_slim.txt requirements_slim.in +# +anndata==0.10.7 +array-api-compat==1.6 +h5py==3.11.0 +natsort==8.4.0 +numpy==1.26.4 +packaging==24.0 +pandas==2.2.2 +python-dateutil==2.9.0.post0 +pytz==2024.1 +scipy==1.13.0 +six==1.16.0 +tzdata==2024.1 diff --git a/docker/scpcatools-slim.Dockerfile b/docker/scpcatools-slim.Dockerfile new file mode 100644 index 00000000..bf71ecf0 --- /dev/null +++ b/docker/scpcatools-slim.Dockerfile @@ -0,0 +1,27 @@ +FROM bioconductor/bioconductor_docker:RELEASE_3_18 +LABEL maintainer="ccdl@alexslemonade.org" +LABEL org.opencontainers.image.source https://github.com/AlexsLemonade/scpcaTools +LABEL org.opencontainers.image.title "scpcaTools-bioconductor" + +#### R packages +# Use renv for R packages +ENV RENV_CONFIG_CACHE_ENABLED FALSE +RUN Rscript -e "install.packages(c('remotes', 'renv'))" + +WORKDIR /usr/local/renv +COPY renv_slim.lock renv.lock +# restore renv and remove cache files +RUN Rscript -e "renv::restore()" && \ + rm -rf ~/.cache/R/renv && \ + rm -rf /tmp/downloaded_packages && \ + rm -rf /tmp/Rtmp* + +########################## +# bust cache if needed +ADD "https://api.github.com/repos/AlexsLemonade/scpcaTools/commits?per_page=1" latest_commit +# Install scpcaTools package (& test loading) +RUN Rscript -e "remotes::install_github('AlexsLemonade/scpcaTools', upgrade = 'never'); \ + require(scpcaTools)" + +# set final workdir for commands +WORKDIR /home diff --git a/docker/scripts/install_scpca_deps.sh b/docker/scripts/install_scpca_deps.sh index 7f367a24..c9bbb724 100644 --- a/docker/scripts/install_scpca_deps.sh +++ b/docker/scripts/install_scpca_deps.sh @@ -31,4 +31,6 @@ apt-get -y --no-install-recommends install \ pandoc \ python3-pip +apt-get clean + rm -rf /var/lib/apt/lists/* diff --git a/requirements.txt b/requirements.txt deleted file mode 120000 index be481796..00000000 --- a/requirements.txt +++ /dev/null @@ -1 +0,0 @@ -docker/requirements.txt \ No newline at end of file From e4ae3378a37a3cfda0d12ab1163622967aa14035 Mon Sep 17 00:00:00 2001 From: Joshua Shapiro Date: Thu, 18 Apr 2024 12:05:20 -0400 Subject: [PATCH 02/28] matrix build for images --- .github/workflows/build-docker.yaml | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-docker.yaml b/.github/workflows/build-docker.yaml index 4b9f0444..b4a1390c 100644 --- a/.github/workflows/build-docker.yaml +++ b/.github/workflows/build-docker.yaml @@ -5,14 +5,13 @@ on: branches: - main tags: - - 'v*' + - "v*" pull_request: branches: - main env: REGISTRY: ghcr.io - IMAGE_NAME: alexslemonade/scpca-tools jobs: build_and_push: @@ -20,6 +19,14 @@ jobs: permissions: contents: read packages: write + strategy: + fail-fast: false + matrix: + include: + - image: alexslemonade/scpcatools + dockerfile: Dockerfile + - image: alexslemonade/scpcatools-slim + dockerfile: scpcatools-slim.Dockerfile steps: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 @@ -35,7 +42,7 @@ jobs: id: meta uses: docker/metadata-action@v4 with: - images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} + images: ${{ env.REGISTRY }}/${{ matrix.image }} tags: | type=semver,pattern={{raw}} type=edge,branch=main @@ -43,6 +50,7 @@ jobs: - uses: docker/build-push-action@v4 with: context: "{{defaultContext}}:docker" + file: ${{ matrix.dockerfile }} push: ${{ github.event_name == 'push' }} tags: ${{ steps.meta.outputs.tags }} labels: ${{ steps.meta.outputs.labels }} From 117c86a712b321a942592005e51c431d2b2f4803 Mon Sep 17 00:00:00 2001 From: Joshua Shapiro Date: Thu, 18 Apr 2024 14:36:24 -0400 Subject: [PATCH 03/28] Fix ubuntu compatibility --- docker/make-requirements.sh | 4 ++-- docker/requirements.in | 1 + docker/requirements.txt | 12 +++++++----- docker/requirements_slim.txt | 5 +++-- 4 files changed, 13 insertions(+), 9 deletions(-) diff --git a/docker/make-requirements.sh b/docker/make-requirements.sh index 0627eebf..999e57cc 100644 --- a/docker/make-requirements.sh +++ b/docker/make-requirements.sh @@ -7,8 +7,8 @@ set -euo pipefail cd "$(dirname "${BASH_SOURCE[0]}")" # Python package lists -pip-compile --no-annotate --output-file=requirements.txt requirements.in -pip-compile --no-annotate --output-file=requirements_slim.txt requirements_slim.in +pip-compile --no-annotate --strip-extras --output-file=requirements.txt requirements.in +pip-compile --no-annotate --strip-extras --output-file=requirements_slim.txt requirements_slim.in # move up a directory for R scripts to capture the package files cd .. diff --git a/docker/requirements.in b/docker/requirements.in index 9263ab62..5bf61cd0 100644 --- a/docker/requirements.in +++ b/docker/requirements.in @@ -1,4 +1,5 @@ anndata~=0.10 +etils<1.8 # v1.8 drops python 3.10 support jax[cpu] pandas scanpy~=1.10 diff --git a/docker/requirements.txt b/docker/requirements.txt index 12a9aa2e..f8b1ee3c 100644 --- a/docker/requirements.txt +++ b/docker/requirements.txt @@ -1,30 +1,32 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.10 # by the following command: # -# pip-compile --no-annotate --output-file=requirements.txt requirements.in +# pip-compile --no-annotate --output-file=requirements.txt --strip-extras requirements.in # absl-py==2.1.0 aiohttp==3.9.5 aiosignal==1.3.1 anndata==0.10.7 array-api-compat==1.6 +async-timeout==4.0.3 attrs==23.2.0 chex==0.1.86 contextlib2==21.6.0 contourpy==1.2.1 cycler==0.12.1 docrep==0.3.2 -etils[epath,epy]==1.8.0 +etils==1.7.0 +exceptiongroup==1.2.0 filelock==3.13.4 flax==0.8.2 fonttools==4.51.0 frozenlist==1.4.1 -fsspec[http]==2024.3.1 +fsspec==2024.3.1 h5py==3.11.0 idna==3.7 importlib-resources==6.4.0 -jax[cpu]==0.4.26 +jax==0.4.26 jaxlib==0.4.26 jinja2==3.1.3 joblib==1.4.0 diff --git a/docker/requirements_slim.txt b/docker/requirements_slim.txt index 68ac8d03..8cfe41ca 100644 --- a/docker/requirements_slim.txt +++ b/docker/requirements_slim.txt @@ -1,11 +1,12 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.10 # by the following command: # -# pip-compile --no-annotate --output-file=requirements_slim.txt requirements_slim.in +# pip-compile --no-annotate --output-file=requirements_slim.txt --strip-extras requirements_slim.in # anndata==0.10.7 array-api-compat==1.6 +exceptiongroup==1.2.0 h5py==3.11.0 natsort==8.4.0 numpy==1.26.4 From 8f23c8256bd4c1a6b48fd2c76d5352ca35506b06 Mon Sep 17 00:00:00 2001 From: Joshua Shapiro Date: Thu, 18 Apr 2024 20:11:05 +0000 Subject: [PATCH 04/28] use P3M for bioc everywhere --- docker/renv.lock | 39 ++++++++++++++++++++++++++++----------- 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/docker/renv.lock b/docker/renv.lock index 9681d571..d67d883d 100644 --- a/docker/renv.lock +++ b/docker/renv.lock @@ -126,6 +126,7 @@ "Package": "Biobase", "Version": "2.62.0", "Source": "Bioconductor", + "Repository": "RSPM", "Requirements": [ "BiocGenerics", "R", @@ -172,6 +173,7 @@ "Package": "BiocIO", "Version": "1.12.0", "Source": "Bioconductor", + "Repository": "RSPM", "Requirements": [ "BiocGenerics", "R", @@ -350,6 +352,7 @@ "Package": "DelayedArray", "Version": "0.28.0", "Source": "Bioconductor", + "Repository": "RSPM", "Requirements": [ "BiocGenerics", "IRanges", @@ -369,6 +372,7 @@ "Package": "DelayedMatrixStats", "Version": "1.24.0", "Source": "Bioconductor", + "Repository": "RSPM", "Requirements": [ "DelayedArray", "IRanges", @@ -384,6 +388,7 @@ "Package": "DropletUtils", "Version": "1.22.0", "Source": "Bioconductor", + "Repository": "RSPM", "Requirements": [ "BH", "BiocGenerics", @@ -471,7 +476,7 @@ "Package": "GenomicAlignments", "Version": "1.38.2", "Source": "Bioconductor", - "Repository": "Bioconductor 3.18", + "Repository": "RSPM", "Requirements": [ "BiocGenerics", "BiocParallel", @@ -568,7 +573,7 @@ "Package": "HDF5Array", "Version": "1.30.1", "Source": "Bioconductor", - "Repository": "Bioconductor 3.18", + "Repository": "RSPM", "Requirements": [ "BiocGenerics", "DelayedArray", @@ -664,6 +669,7 @@ "Package": "MatrixGenerics", "Version": "1.14.0", "Source": "Bioconductor", + "Repository": "RSPM", "Requirements": [ "matrixStats", "methods" @@ -932,7 +938,7 @@ "Package": "Rhdf5lib", "Version": "1.24.2", "Source": "Bioconductor", - "Repository": "Bioconductor 3.18", + "Repository": "RSPM", "Requirements": [ "R" ], @@ -959,6 +965,7 @@ "Package": "Rsamtools", "Version": "2.18.0", "Source": "Bioconductor", + "Repository": "RSPM", "Requirements": [ "BiocGenerics", "BiocParallel", @@ -993,7 +1000,7 @@ "Package": "S4Arrays", "Version": "1.2.1", "Source": "Bioconductor", - "Repository": "Bioconductor 3.18", + "Repository": "RSPM", "Requirements": [ "BiocGenerics", "IRanges", @@ -1026,6 +1033,7 @@ "Package": "ScaledMatrix", "Version": "1.10.0", "Source": "Bioconductor", + "Repository": "RSPM", "Requirements": [ "DelayedArray", "Matrix", @@ -1132,6 +1140,7 @@ "Package": "SingleCellExperiment", "Version": "1.24.0", "Source": "Bioconductor", + "Repository": "RSPM", "Requirements": [ "BiocGenerics", "DelayedArray", @@ -1171,7 +1180,7 @@ "Package": "SparseArray", "Version": "1.2.4", "Source": "Bioconductor", - "Repository": "Bioconductor 3.18", + "Repository": "RSPM", "Requirements": [ "BiocGenerics", "IRanges", @@ -1191,6 +1200,7 @@ "Package": "SummarizedExperiment", "Version": "1.32.0", "Source": "Bioconductor", + "Repository": "RSPM", "Requirements": [ "Biobase", "BiocGenerics", @@ -1300,7 +1310,7 @@ "Package": "basilisk.utils", "Version": "1.14.1", "Source": "Bioconductor", - "Repository": "Bioconductor 3.18", + "Repository": "RSPM", "Requirements": [ "dir.expiry", "methods", @@ -1341,7 +1351,7 @@ "Package": "beachmat", "Version": "2.18.1", "Source": "Bioconductor", - "Repository": "Bioconductor 3.18", + "Repository": "RSPM", "Requirements": [ "BiocGenerics", "DelayedArray", @@ -1369,7 +1379,7 @@ "Package": "biomaRt", "Version": "2.58.2", "Source": "Bioconductor", - "Repository": "Bioconductor 3.18", + "Repository": "RSPM", "Requirements": [ "AnnotationDbi", "BiocFileCache", @@ -1832,6 +1842,7 @@ "Package": "dir.expiry", "Version": "1.10.0", "Source": "Bioconductor", + "Repository": "RSPM", "Requirements": [ "filelock", "utils" @@ -1921,7 +1932,7 @@ "Package": "edgeR", "Version": "4.0.16", "Source": "Bioconductor", - "Repository": "Bioconductor 3.18", + "Repository": "RSPM", "Requirements": [ "R", "Rcpp", @@ -2501,6 +2512,7 @@ "Package": "graph", "Version": "1.80.0", "Source": "Bioconductor", + "Repository": "RSPM", "Requirements": [ "BiocGenerics", "R", @@ -2929,6 +2941,7 @@ "Package": "limma", "Version": "3.58.1", "Source": "Bioconductor", + "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -3539,6 +3552,7 @@ "Package": "qvalue", "Version": "2.34.0", "Source": "Bioconductor", + "Repository": "RSPM", "Requirements": [ "R", "ggplot2", @@ -3711,7 +3725,7 @@ "Package": "rhdf5", "Version": "2.46.1", "Source": "Bioconductor", - "Repository": "Bioconductor 3.18", + "Repository": "RSPM", "Requirements": [ "R", "Rhdf5lib", @@ -3725,7 +3739,7 @@ "Package": "rhdf5filters", "Version": "1.14.1", "Source": "Bioconductor", - "Repository": "Bioconductor 3.18", + "Repository": "RSPM", "Requirements": [ "Rhdf5lib" ], @@ -3807,6 +3821,7 @@ "Package": "rtracklayer", "Version": "1.62.0", "Source": "Bioconductor", + "Repository": "RSPM", "Requirements": [ "BiocGenerics", "BiocIO", @@ -3990,6 +4005,7 @@ "Package": "scuttle", "Version": "1.12.0", "Source": "Bioconductor", + "Repository": "RSPM", "Requirements": [ "BiocGenerics", "BiocParallel", @@ -4147,6 +4163,7 @@ "Package": "sparseMatrixStats", "Version": "1.14.0", "Source": "Bioconductor", + "Repository": "RSPM", "Requirements": [ "Matrix", "MatrixGenerics", From c41f3a4459e3b0c356df487a7587706202bbca61 Mon Sep 17 00:00:00 2001 From: Joshua Shapiro Date: Fri, 19 Apr 2024 13:12:14 -0400 Subject: [PATCH 05/28] Use a script to make renv lock files --- .pre-commit-config.yaml | 1 + docker/make-requirements.sh | 24 +- docker/renv.lock | 9 +- docker/renv_seurat.lock | 1547 +++++++++++++++++ docker/renv_zellkonverter.lock | 1402 +++++++++++++++ ...ements_slim.in => requirements_anndata.in} | 0 ...ents_slim.txt => requirements_anndata.txt} | 4 +- docker/scripts/make-lockfile.R | 42 + 8 files changed, 3005 insertions(+), 24 deletions(-) create mode 100644 docker/renv_seurat.lock create mode 100644 docker/renv_zellkonverter.lock rename docker/{requirements_slim.in => requirements_anndata.in} (100%) rename docker/{requirements_slim.txt => requirements_anndata.txt} (68%) create mode 100644 docker/scripts/make-lockfile.R diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 57e9d555..9fbd9a65 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -48,6 +48,7 @@ repos: - id: no-browser-statement - id: no-debug-statement - id: deps-in-desc + exclude: docker/.* - repo: https://github.com/pre-commit/pre-commit-hooks rev: v4.5.0 hooks: diff --git a/docker/make-requirements.sh b/docker/make-requirements.sh index 999e57cc..899bd1eb 100644 --- a/docker/make-requirements.sh +++ b/docker/make-requirements.sh @@ -8,21 +8,13 @@ cd "$(dirname "${BASH_SOURCE[0]}")" # Python package lists pip-compile --no-annotate --strip-extras --output-file=requirements.txt requirements.in -pip-compile --no-annotate --strip-extras --output-file=requirements_slim.txt requirements_slim.in +pip-compile --no-annotate --strip-extras --output-file=requirements_anndata.txt requirements_anndata.in -# move up a directory for R scripts to capture the package files -cd .. -Rscript - < - unlist() |> - unique() |> - renv::record(lockfile = lockfile) -EOF +# zellkonverter lockfile +Rscript scripts/make-lockfile.R -f renv_zellkonverter.lock -p zellkonverter + +# Seurat lockfile +Rscript scripts/make-lockfile.R -f renv_seurat.lock -p Seurat diff --git a/docker/renv.lock b/docker/renv.lock index d67d883d..4e5d27af 100644 --- a/docker/renv.lock +++ b/docker/renv.lock @@ -3641,12 +3641,9 @@ "renv": { "Package": "renv", "Version": "1.0.7", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "utils" - ], - "Hash": "397b7b2a265bc5a7a06852524dabae20" + "OS_type": null, + "Repository": "CRAN", + "Source": "Repository" }, "reprex": { "Package": "reprex", diff --git a/docker/renv_seurat.lock b/docker/renv_seurat.lock new file mode 100644 index 00000000..3c98edfc --- /dev/null +++ b/docker/renv_seurat.lock @@ -0,0 +1,1547 @@ +{ + "R": { + "Version": "4.3.3", + "Repositories": [ + { + "Name": "BioCsoft", + "URL": "https://p3m.dev/bioconductor/packages/3.18/bioc" + }, + { + "Name": "BioCann", + "URL": "https://p3m.dev/bioconductor/packages/3.18/data/annotation" + }, + { + "Name": "BioCexp", + "URL": "https://p3m.dev/bioconductor/packages/3.18/data/experiment" + }, + { + "Name": "BioCworkflows", + "URL": "https://p3m.dev/bioconductor/packages/3.18/workflows" + }, + { + "Name": "BioCbooks", + "URL": "https://p3m.dev/bioconductor/packages/3.18/books" + }, + { + "Name": "CRAN", + "URL": "https://p3m.dev/cran/latest" + } + ] + }, + "Bioconductor": { + "Version": "3.18" + }, + "Packages": { + "BH": { + "Package": "BH", + "Version": "1.84.0-0", + "Source": "Repository", + "Repository": "RSPM", + "Hash": "a8235afbcd6316e6e91433ea47661013" + }, + "Biobase": { + "Package": "Biobase", + "Version": "2.62.0", + "Source": "Bioconductor", + "Requirements": [ + "BiocGenerics", + "R", + "methods", + "utils" + ], + "Hash": "38252a34e82d3ff6bb46b4e2252d2dce" + }, + "BiocGenerics": { + "Package": "BiocGenerics", + "Version": "0.48.1", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "R", + "graphics", + "methods", + "stats", + "utils" + ], + "Hash": "e34278c65d7dffcc08f737bf0944ca9a" + }, + "BiocManager": { + "Package": "BiocManager", + "Version": "1.30.22", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "utils" + ], + "Hash": "d57e43105a1aa9cb54fdb4629725acb1" + }, + "BiocNeighbors": { + "Package": "BiocNeighbors", + "Version": "1.20.2", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "BiocParallel", + "Matrix", + "Rcpp", + "RcppHNSW", + "S4Vectors", + "methods", + "stats" + ], + "Hash": "c5c8ade5852fd3b25c66ec28873d00f1" + }, + "BiocParallel": { + "Package": "BiocParallel", + "Version": "1.36.0", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "BH", + "R", + "codetools", + "cpp11", + "futile.logger", + "methods", + "parallel", + "snow", + "stats", + "utils" + ], + "Hash": "6d1689ee8b65614ba6ef4012a67b663a" + }, + "BiocVersion": { + "Package": "BiocVersion", + "Version": "3.18.1", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "2ecaed86684f5fae76ed5530f9d29c4a" + }, + "DelayedArray": { + "Package": "DelayedArray", + "Version": "0.28.0", + "Source": "Bioconductor", + "Requirements": [ + "BiocGenerics", + "IRanges", + "Matrix", + "MatrixGenerics", + "R", + "S4Arrays", + "S4Vectors", + "SparseArray", + "methods", + "stats", + "stats4" + ], + "Hash": "0e5c84e543a3d04ce64c6f60ed46d7eb" + }, + "DelayedMatrixStats": { + "Package": "DelayedMatrixStats", + "Version": "1.24.0", + "Source": "Bioconductor", + "Requirements": [ + "DelayedArray", + "IRanges", + "Matrix", + "MatrixGenerics", + "S4Vectors", + "methods", + "sparseMatrixStats" + ], + "Hash": "71c2d178d33f9d91999f67dc2d53b747" + }, + "DropletUtils": { + "Package": "DropletUtils", + "Version": "1.22.0", + "Source": "Bioconductor", + "Requirements": [ + "BH", + "BiocGenerics", + "BiocParallel", + "DelayedArray", + "DelayedMatrixStats", + "GenomicRanges", + "HDF5Array", + "IRanges", + "Matrix", + "R.utils", + "Rcpp", + "Rhdf5lib", + "S4Vectors", + "SingleCellExperiment", + "SummarizedExperiment", + "beachmat", + "dqrng", + "edgeR", + "methods", + "rhdf5", + "scuttle", + "stats", + "utils" + ], + "Hash": "be3893d30c97591f1d3ec6f053830c3a" + }, + "GenomeInfoDb": { + "Package": "GenomeInfoDb", + "Version": "1.38.8", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "BiocGenerics", + "GenomeInfoDbData", + "IRanges", + "R", + "RCurl", + "S4Vectors", + "methods", + "stats", + "stats4", + "utils" + ], + "Hash": "155053909d2831bfac154a1118151d6b" + }, + "GenomeInfoDbData": { + "Package": "GenomeInfoDbData", + "Version": "1.2.11", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "10f32956181d1d46bd8402c93ac193e8" + }, + "GenomicRanges": { + "Package": "GenomicRanges", + "Version": "1.54.1", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "BiocGenerics", + "GenomeInfoDb", + "IRanges", + "R", + "S4Vectors", + "XVector", + "methods", + "stats", + "stats4", + "utils" + ], + "Hash": "7e0c1399af35369312d9c399454374e8" + }, + "HDF5Array": { + "Package": "HDF5Array", + "Version": "1.30.1", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "BiocGenerics", + "DelayedArray", + "IRanges", + "Matrix", + "R", + "Rhdf5lib", + "S4Arrays", + "S4Vectors", + "methods", + "rhdf5", + "rhdf5filters", + "stats", + "tools", + "utils" + ], + "Hash": "9b8deb4fd34fa439c16c829457d1968f" + }, + "IRanges": { + "Package": "IRanges", + "Version": "2.36.0", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "BiocGenerics", + "R", + "S4Vectors", + "methods", + "stats", + "stats4", + "utils" + ], + "Hash": "f98500eeb93e8a66ad65be955a848595" + }, + "KernSmooth": { + "Package": "KernSmooth", + "Version": "2.23-22", + "Source": "Repository" + }, + "MASS": { + "Package": "MASS", + "Version": "7.3-60.0.1", + "Source": "Repository" + }, + "Matrix": { + "Package": "Matrix", + "Version": "1.6-5", + "Source": "Repository" + }, + "MatrixGenerics": { + "Package": "MatrixGenerics", + "Version": "1.14.0", + "Source": "Bioconductor", + "Requirements": [ + "matrixStats", + "methods" + ], + "Hash": "088cd2077b5619fcb7b373b1a45174e7" + }, + "R.methodsS3": { + "Package": "R.methodsS3", + "Version": "1.8.2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "utils" + ], + "Hash": "278c286fd6e9e75d0c2e8f731ea445c8" + }, + "R.oo": { + "Package": "R.oo", + "Version": "1.26.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "R.methodsS3", + "methods", + "utils" + ], + "Hash": "4fed809e53ddb5407b3da3d0f572e591" + }, + "R.utils": { + "Package": "R.utils", + "Version": "2.12.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "R.methodsS3", + "R.oo", + "methods", + "tools", + "utils" + ], + "Hash": "3dc2829b790254bfba21e60965787651" + }, + "R6": { + "Package": "R6", + "Version": "2.5.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "470851b6d5d0ac559e9d01bb352b4021" + }, + "RANN": { + "Package": "RANN", + "Version": "2.6.1", + "Source": "Repository" + }, + "RColorBrewer": { + "Package": "RColorBrewer", + "Version": "1.1-3", + "Source": "Repository" + }, + "RCurl": { + "Package": "RCurl", + "Version": "1.98-1.14", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "bitops", + "methods" + ], + "Hash": "47f648d288079d0c696804ad4e55197e" + }, + "ROCR": { + "Package": "ROCR", + "Version": "1.0-11", + "Source": "Repository" + }, + "RSpectra": { + "Package": "RSpectra", + "Version": "0.16-1", + "Source": "Repository" + }, + "Rcpp": { + "Package": "Rcpp", + "Version": "1.0.12", + "Source": "Repository" + }, + "RcppAnnoy": { + "Package": "RcppAnnoy", + "Version": "0.0.22", + "Source": "Repository" + }, + "RcppEigen": { + "Package": "RcppEigen", + "Version": "0.3.4.0.0", + "Source": "Repository" + }, + "RcppHNSW": { + "Package": "RcppHNSW", + "Version": "0.6.0", + "Source": "Repository" + }, + "RcppProgress": { + "Package": "RcppProgress", + "Version": "0.4.2", + "Source": "Repository" + }, + "Rhdf5lib": { + "Package": "Rhdf5lib", + "Version": "1.24.2", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "R" + ], + "Hash": "3cf103db29d75af0221d71946509a30c" + }, + "Rtsne": { + "Package": "Rtsne", + "Version": "0.17", + "Source": "Repository" + }, + "S4Arrays": { + "Package": "S4Arrays", + "Version": "1.2.1", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "BiocGenerics", + "IRanges", + "Matrix", + "R", + "S4Vectors", + "abind", + "crayon", + "methods", + "stats" + ], + "Hash": "3213a9826adb8f48e51af1e7b30fa568" + }, + "S4Vectors": { + "Package": "S4Vectors", + "Version": "0.40.2", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "BiocGenerics", + "R", + "methods", + "stats", + "stats4", + "utils" + ], + "Hash": "1716e201f81ced0f456dd5ec85fe20f8" + }, + "SeuratObject": { + "Package": "SeuratObject", + "Version": "5.0.1", + "Source": "Repository" + }, + "SingleCellExperiment": { + "Package": "SingleCellExperiment", + "Version": "1.24.0", + "Source": "Bioconductor", + "Requirements": [ + "BiocGenerics", + "DelayedArray", + "GenomicRanges", + "S4Vectors", + "SummarizedExperiment", + "methods", + "stats", + "utils" + ], + "Hash": "e21b3571ce76eb4dfe6bf7900960aa6a" + }, + "SparseArray": { + "Package": "SparseArray", + "Version": "1.2.4", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "BiocGenerics", + "IRanges", + "Matrix", + "MatrixGenerics", + "R", + "S4Arrays", + "S4Vectors", + "XVector", + "matrixStats", + "methods", + "stats" + ], + "Hash": "391092e7b81373ab624bd6471cebccd4" + }, + "SummarizedExperiment": { + "Package": "SummarizedExperiment", + "Version": "1.32.0", + "Source": "Bioconductor", + "Requirements": [ + "Biobase", + "BiocGenerics", + "DelayedArray", + "GenomeInfoDb", + "GenomicRanges", + "IRanges", + "Matrix", + "MatrixGenerics", + "R", + "S4Arrays", + "S4Vectors", + "methods", + "stats", + "tools", + "utils" + ], + "Hash": "caee529bf9710ff6fe1776612fcaa266" + }, + "XVector": { + "Package": "XVector", + "Version": "0.42.0", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "BiocGenerics", + "IRanges", + "R", + "S4Vectors", + "methods", + "tools", + "utils", + "zlibbioc" + ], + "Hash": "65c0b6bca03f88758f86ef0aa18c4873" + }, + "abind": { + "Package": "abind", + "Version": "1.4-5", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "methods", + "utils" + ], + "Hash": "4f57884290cc75ab22f4af9e9d4ca862" + }, + "beachmat": { + "Package": "beachmat", + "Version": "2.18.1", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "BiocGenerics", + "DelayedArray", + "Matrix", + "Rcpp", + "SparseArray", + "methods" + ], + "Hash": "c1c423ca7149d9e7f55d1e609342c2bd" + }, + "bitops": { + "Package": "bitops", + "Version": "1.0-7", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "b7d8d8ee39869c18d8846a184dd8a1af" + }, + "bluster": { + "Package": "bluster", + "Version": "1.12.0", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "BiocNeighbors", + "BiocParallel", + "Matrix", + "Rcpp", + "S4Vectors", + "cluster", + "igraph", + "methods", + "stats", + "utils" + ], + "Hash": "fca0d5ffad6380f13cad4d7855107aef" + }, + "broom": { + "Package": "broom", + "Version": "1.0.5", + "Source": "Repository" + }, + "cli": { + "Package": "cli", + "Version": "3.6.2", + "Source": "Repository" + }, + "cluster": { + "Package": "cluster", + "Version": "2.1.6", + "Source": "Repository" + }, + "codetools": { + "Package": "codetools", + "Version": "0.2-20", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "61e097f35917d342622f21cdc79c256e" + }, + "colorspace": { + "Package": "colorspace", + "Version": "2.1-0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "grDevices", + "graphics", + "methods", + "stats" + ], + "Hash": "f20c47fd52fae58b4e377c37bb8c335b" + }, + "conflicted": { + "Package": "conflicted", + "Version": "1.2.0", + "Source": "Repository" + }, + "cowplot": { + "Package": "cowplot", + "Version": "1.1.3", + "Source": "Repository" + }, + "cpp11": { + "Package": "cpp11", + "Version": "0.4.7", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "5a295d7d963cc5035284dcdbaf334f4e" + }, + "crayon": { + "Package": "crayon", + "Version": "1.5.2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "grDevices", + "methods", + "utils" + ], + "Hash": "e8a1e41acf02548751f45c718d55aa6a" + }, + "dbplyr": { + "Package": "dbplyr", + "Version": "2.5.0", + "Source": "Repository" + }, + "dplyr": { + "Package": "dplyr", + "Version": "1.1.4", + "Source": "Repository" + }, + "dqrng": { + "Package": "dqrng", + "Version": "0.3.2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "BH", + "R", + "Rcpp", + "sitmo" + ], + "Hash": "824df2aeba88d701df5e79018b35b815" + }, + "dtplyr": { + "Package": "dtplyr", + "Version": "1.3.1", + "Source": "Repository" + }, + "edgeR": { + "Package": "edgeR", + "Version": "4.0.16", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "R", + "Rcpp", + "graphics", + "limma", + "locfit", + "methods", + "stats", + "utils" + ], + "Hash": "a0405c7890708dcb53809d46758800f4" + }, + "fansi": { + "Package": "fansi", + "Version": "1.0.6", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "grDevices", + "utils" + ], + "Hash": "962174cf2aeb5b9eea581522286a911f" + }, + "farver": { + "Package": "farver", + "Version": "2.1.1", + "Source": "Repository", + "Repository": "RSPM", + "Hash": "8106d78941f34855c440ddb946b8f7a5" + }, + "fastDummies": { + "Package": "fastDummies", + "Version": "1.7.3", + "Source": "Repository" + }, + "fishpond": { + "Package": "fishpond", + "Version": "2.8.0", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "GenomicRanges", + "IRanges", + "Matrix", + "S4Vectors", + "SingleCellExperiment", + "SummarizedExperiment", + "abind", + "graphics", + "gtools", + "jsonlite", + "matrixStats", + "methods", + "qvalue", + "stats", + "svMisc", + "utils" + ], + "Hash": "60ebe3366ccb6c1a11a99682f56f2a2f" + }, + "fitdistrplus": { + "Package": "fitdistrplus", + "Version": "1.1-11", + "Source": "Repository" + }, + "flexmix": { + "Package": "flexmix", + "Version": "2.3-19", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "grDevices", + "graphics", + "grid", + "lattice", + "methods", + "modeltools", + "nnet", + "stats", + "stats4", + "utils" + ], + "Hash": "0cb3c4b251c2d3fd5923d3e7e6021ee2" + }, + "forcats": { + "Package": "forcats", + "Version": "1.0.0", + "Source": "Repository" + }, + "formatR": { + "Package": "formatR", + "Version": "1.14", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "63cb26d12517c7863f5abb006c5e0f25" + }, + "futile.logger": { + "Package": "futile.logger", + "Version": "1.4.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "futile.options", + "lambda.r", + "utils" + ], + "Hash": "99f0ace8c05ec7d3683d27083c4f1e7e" + }, + "futile.options": { + "Package": "futile.options", + "Version": "1.0.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "0d9bf02413ddc2bbe8da9ce369dcdd2b" + }, + "future": { + "Package": "future", + "Version": "1.33.2", + "Source": "Repository" + }, + "future.apply": { + "Package": "future.apply", + "Version": "1.11.2", + "Source": "Repository" + }, + "generics": { + "Package": "generics", + "Version": "0.1.3", + "Source": "Repository" + }, + "ggplot2": { + "Package": "ggplot2", + "Version": "3.5.0", + "Source": "Repository" + }, + "ggrepel": { + "Package": "ggrepel", + "Version": "0.9.5", + "Source": "Repository" + }, + "ggridges": { + "Package": "ggridges", + "Version": "0.5.6", + "Source": "Repository" + }, + "glue": { + "Package": "glue", + "Version": "1.7.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "methods" + ], + "Hash": "e0b3a53876554bd45879e596cdb10a52" + }, + "googledrive": { + "Package": "googledrive", + "Version": "2.1.1", + "Source": "Repository" + }, + "googlesheets4": { + "Package": "googlesheets4", + "Version": "1.1.1", + "Source": "Repository" + }, + "grDevices": { + "Package": "grDevices", + "Version": "4.3.3", + "Source": "R" + }, + "graphics": { + "Package": "graphics", + "Version": "4.3.3", + "Source": "R" + }, + "grid": { + "Package": "grid", + "Version": "4.3.3", + "Source": "R" + }, + "gtable": { + "Package": "gtable", + "Version": "0.3.4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "cli", + "glue", + "grid", + "lifecycle", + "rlang" + ], + "Hash": "b29cf3031f49b04ab9c852c912547eef" + }, + "gtools": { + "Package": "gtools", + "Version": "3.9.5", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "methods", + "stats", + "utils" + ], + "Hash": "588d091c35389f1f4a9d533c8d709b35" + }, + "haven": { + "Package": "haven", + "Version": "2.5.4", + "Source": "Repository" + }, + "hms": { + "Package": "hms", + "Version": "1.1.3", + "Source": "Repository" + }, + "httr": { + "Package": "httr", + "Version": "1.4.7", + "Source": "Repository" + }, + "ica": { + "Package": "ica", + "Version": "1.0-3", + "Source": "Repository" + }, + "igraph": { + "Package": "igraph", + "Version": "2.0.3", + "Source": "Repository" + }, + "irlba": { + "Package": "irlba", + "Version": "2.3.5.1", + "Source": "Repository" + }, + "isoband": { + "Package": "isoband", + "Version": "0.2.7", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "grid", + "utils" + ], + "Hash": "0080607b4a1a7b28979aecef976d8bc2" + }, + "jsonlite": { + "Package": "jsonlite", + "Version": "1.8.8", + "Source": "Repository" + }, + "labeling": { + "Package": "labeling", + "Version": "0.4.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "graphics", + "stats" + ], + "Hash": "b64ec208ac5bc1852b285f665d6368b3" + }, + "lambda.r": { + "Package": "lambda.r", + "Version": "1.2.4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "formatR" + ], + "Hash": "b1e925c4b9ffeb901bacf812cbe9a6ad" + }, + "lattice": { + "Package": "lattice", + "Version": "0.22-6", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "grDevices", + "graphics", + "grid", + "stats", + "utils" + ], + "Hash": "cc5ac1ba4c238c7ca9fa6a87ca11a7e2" + }, + "leiden": { + "Package": "leiden", + "Version": "0.4.3.1", + "Source": "Repository" + }, + "lifecycle": { + "Package": "lifecycle", + "Version": "1.0.4", + "Source": "Repository" + }, + "limma": { + "Package": "limma", + "Version": "3.58.1", + "Source": "Bioconductor", + "Requirements": [ + "R", + "grDevices", + "graphics", + "methods", + "statmod", + "stats", + "utils" + ], + "Hash": "74c3b64358e0be7edc3ecd130816dd3f" + }, + "lmtest": { + "Package": "lmtest", + "Version": "0.9-40", + "Source": "Repository" + }, + "locfit": { + "Package": "locfit", + "Version": "1.5-9.9", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "lattice" + ], + "Hash": "3885127e04b35dafded049075057ad83" + }, + "lubridate": { + "Package": "lubridate", + "Version": "1.9.3", + "Source": "Repository" + }, + "magrittr": { + "Package": "magrittr", + "Version": "2.0.3", + "Source": "Repository" + }, + "matrixStats": { + "Package": "matrixStats", + "Version": "1.3.0", + "Source": "Repository" + }, + "methods": { + "Package": "methods", + "Version": "4.3.3", + "Source": "R" + }, + "mgcv": { + "Package": "mgcv", + "Version": "1.9-1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "Matrix", + "R", + "graphics", + "methods", + "nlme", + "splines", + "stats", + "utils" + ], + "Hash": "110ee9d83b496279960e162ac97764ce" + }, + "miQC": { + "Package": "miQC", + "Version": "1.10.0", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "R", + "SingleCellExperiment", + "flexmix", + "ggplot2", + "splines" + ], + "Hash": "5d3660451d88509307ce0b0e48748109" + }, + "miniUI": { + "Package": "miniUI", + "Version": "0.1.1.1", + "Source": "Repository" + }, + "modelr": { + "Package": "modelr", + "Version": "0.1.11", + "Source": "Repository" + }, + "modeltools": { + "Package": "modeltools", + "Version": "0.2-23", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "methods", + "stats", + "stats4" + ], + "Hash": "f5a957c02222589bdf625a67be68b2a9" + }, + "munsell": { + "Package": "munsell", + "Version": "0.5.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "colorspace", + "methods" + ], + "Hash": "4fd8900853b746af55b81fda99da7695" + }, + "nlme": { + "Package": "nlme", + "Version": "3.1-164", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "graphics", + "lattice", + "stats", + "utils" + ], + "Hash": "a623a2239e642806158bc4dc3f51565d" + }, + "nnet": { + "Package": "nnet", + "Version": "7.3-19", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "stats", + "utils" + ], + "Hash": "2c797b46eea7fb58ede195bc0b1f1138" + }, + "patchwork": { + "Package": "patchwork", + "Version": "1.2.0", + "Source": "Repository" + }, + "pbapply": { + "Package": "pbapply", + "Version": "1.7-2", + "Source": "Repository" + }, + "pillar": { + "Package": "pillar", + "Version": "1.9.0", + "Source": "Repository" + }, + "pkgconfig": { + "Package": "pkgconfig", + "Version": "2.0.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "utils" + ], + "Hash": "01f28d4278f15c76cddbea05899c5d6f" + }, + "plotly": { + "Package": "plotly", + "Version": "4.10.4", + "Source": "Repository" + }, + "plyr": { + "Package": "plyr", + "Version": "1.8.9", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "Rcpp" + ], + "Hash": "6b8177fd19982f0020743fadbfdbd933" + }, + "png": { + "Package": "png", + "Version": "0.1-8", + "Source": "Repository" + }, + "progressr": { + "Package": "progressr", + "Version": "0.14.0", + "Source": "Repository" + }, + "purrr": { + "Package": "purrr", + "Version": "1.0.2", + "Source": "Repository" + }, + "qvalue": { + "Package": "qvalue", + "Version": "2.34.0", + "Source": "Bioconductor", + "Requirements": [ + "R", + "ggplot2", + "grid", + "reshape2", + "splines" + ], + "Hash": "76fc42834c44b69e4021f6ade524d299" + }, + "ragg": { + "Package": "ragg", + "Version": "1.3.0", + "Source": "Repository" + }, + "readr": { + "Package": "readr", + "Version": "2.1.5", + "Source": "Repository" + }, + "readxl": { + "Package": "readxl", + "Version": "1.4.3", + "Source": "Repository" + }, + "renv": { + "Package": "renv", + "Version": "1.0.7", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "utils" + ], + "Hash": "397b7b2a265bc5a7a06852524dabae20" + }, + "reprex": { + "Package": "reprex", + "Version": "2.1.0", + "Source": "Repository" + }, + "reshape2": { + "Package": "reshape2", + "Version": "1.4.4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "Rcpp", + "plyr", + "stringr" + ], + "Hash": "bb5996d0bd962d214a11140d77589917" + }, + "reticulate": { + "Package": "reticulate", + "Version": "1.36.0", + "Source": "Repository" + }, + "rhdf5": { + "Package": "rhdf5", + "Version": "2.46.1", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "R", + "Rhdf5lib", + "S4Vectors", + "methods", + "rhdf5filters" + ], + "Hash": "b0a244022c3427cd8213c33804c6b5de" + }, + "rhdf5filters": { + "Package": "rhdf5filters", + "Version": "1.14.1", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "Rhdf5lib" + ], + "Hash": "d27a2f6a89def6388fad5b0aae026220" + }, + "rlang": { + "Package": "rlang", + "Version": "1.1.3", + "Source": "Repository" + }, + "rstudioapi": { + "Package": "rstudioapi", + "Version": "0.16.0", + "Source": "Repository" + }, + "rvest": { + "Package": "rvest", + "Version": "1.0.4", + "Source": "Repository" + }, + "scales": { + "Package": "scales", + "Version": "1.3.0", + "Source": "Repository" + }, + "scattermore": { + "Package": "scattermore", + "Version": "1.2", + "Source": "Repository" + }, + "sctransform": { + "Package": "sctransform", + "Version": "0.4.1", + "Source": "Repository" + }, + "scuttle": { + "Package": "scuttle", + "Version": "1.12.0", + "Source": "Bioconductor", + "Requirements": [ + "BiocGenerics", + "BiocParallel", + "DelayedArray", + "DelayedMatrixStats", + "GenomicRanges", + "Matrix", + "Rcpp", + "S4Vectors", + "SingleCellExperiment", + "SummarizedExperiment", + "beachmat", + "methods", + "stats", + "utils" + ], + "Hash": "1412c4b6dfd8de528e1101e493e66a02" + }, + "shiny": { + "Package": "shiny", + "Version": "1.8.1.1", + "Source": "Repository" + }, + "sitmo": { + "Package": "sitmo", + "Version": "2.0.2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "Rcpp" + ], + "Hash": "c956d93f6768a9789edbc13072b70c78" + }, + "snow": { + "Package": "snow", + "Version": "0.4-4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "utils" + ], + "Hash": "40b74690debd20c57d93d8c246b305d4" + }, + "sparseMatrixStats": { + "Package": "sparseMatrixStats", + "Version": "1.14.0", + "Source": "Bioconductor", + "Requirements": [ + "Matrix", + "MatrixGenerics", + "Rcpp", + "matrixStats", + "methods" + ], + "Hash": "49383d0f6c6152ff7cb594f254c23cc8" + }, + "spatstat.explore": { + "Package": "spatstat.explore", + "Version": "3.2-7", + "Source": "Repository" + }, + "spatstat.geom": { + "Package": "spatstat.geom", + "Version": "3.2-9", + "Source": "Repository" + }, + "statmod": { + "Package": "statmod", + "Version": "1.5.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "graphics", + "stats" + ], + "Hash": "26e158d12052c279bdd4ba858b80fb1f" + }, + "stats": { + "Package": "stats", + "Version": "4.3.3", + "Source": "R" + }, + "stringi": { + "Package": "stringi", + "Version": "1.8.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "stats", + "tools", + "utils" + ], + "Hash": "058aebddea264f4c99401515182e656a" + }, + "stringr": { + "Package": "stringr", + "Version": "1.5.1", + "Source": "Repository" + }, + "svMisc": { + "Package": "svMisc", + "Version": "1.2.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "methods", + "stats", + "tools", + "utils" + ], + "Hash": "b13f5680860f67c32ccb006ad38f24f4" + }, + "tibble": { + "Package": "tibble", + "Version": "3.2.1", + "Source": "Repository" + }, + "tidyr": { + "Package": "tidyr", + "Version": "1.3.1", + "Source": "Repository" + }, + "tidyselect": { + "Package": "tidyselect", + "Version": "1.2.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "cli", + "glue", + "lifecycle", + "rlang", + "vctrs", + "withr" + ], + "Hash": "829f27b9c4919c16b593794a6344d6c0" + }, + "tools": { + "Package": "tools", + "Version": "4.3.3", + "Source": "R" + }, + "tximport": { + "Package": "tximport", + "Version": "1.30.0", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "methods", + "stats", + "utils" + ], + "Hash": "6e9621b0f1bf9398255f32c7000a7e16" + }, + "utf8": { + "Package": "utf8", + "Version": "1.2.4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "62b65c52671e6665f803ff02954446e9" + }, + "utils": { + "Package": "utils", + "Version": "4.3.3", + "Source": "R" + }, + "uwot": { + "Package": "uwot", + "Version": "0.2.1", + "Source": "Repository" + }, + "vctrs": { + "Package": "vctrs", + "Version": "0.6.5", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "cli", + "glue", + "lifecycle", + "rlang" + ], + "Hash": "c03fa420630029418f7e6da3667aac4a" + }, + "viridisLite": { + "Package": "viridisLite", + "Version": "0.4.2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "c826c7c4241b6fc89ff55aaea3fa7491" + }, + "withr": { + "Package": "withr", + "Version": "3.0.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "grDevices", + "graphics" + ], + "Hash": "d31b6c62c10dcf11ec530ca6b0dd5d35" + }, + "xml2": { + "Package": "xml2", + "Version": "1.3.6", + "Source": "Repository" + }, + "zlibbioc": { + "Package": "zlibbioc", + "Version": "1.48.2", + "Source": "Bioconductor", + "Repository": "RSPM", + "Hash": "2344be62c2da4d9e9942b5d8db346e59" + } + } +} diff --git a/docker/renv_zellkonverter.lock b/docker/renv_zellkonverter.lock new file mode 100644 index 00000000..4a565c79 --- /dev/null +++ b/docker/renv_zellkonverter.lock @@ -0,0 +1,1402 @@ +{ + "R": { + "Version": "4.3.3", + "Repositories": [ + { + "Name": "BioCsoft", + "URL": "https://p3m.dev/bioconductor/packages/3.18/bioc" + }, + { + "Name": "BioCann", + "URL": "https://p3m.dev/bioconductor/packages/3.18/data/annotation" + }, + { + "Name": "BioCexp", + "URL": "https://p3m.dev/bioconductor/packages/3.18/data/experiment" + }, + { + "Name": "BioCworkflows", + "URL": "https://p3m.dev/bioconductor/packages/3.18/workflows" + }, + { + "Name": "BioCbooks", + "URL": "https://p3m.dev/bioconductor/packages/3.18/books" + }, + { + "Name": "CRAN", + "URL": "https://p3m.dev/cran/latest" + } + ] + }, + "Bioconductor": { + "Version": "3.18" + }, + "Packages": { + "BH": { + "Package": "BH", + "Version": "1.84.0-0", + "Source": "Repository", + "Repository": "RSPM", + "Hash": "a8235afbcd6316e6e91433ea47661013" + }, + "Biobase": { + "Package": "Biobase", + "Version": "2.62.0", + "Source": "Bioconductor", + "Requirements": [ + "BiocGenerics", + "R", + "methods", + "utils" + ], + "Hash": "38252a34e82d3ff6bb46b4e2252d2dce" + }, + "BiocGenerics": { + "Package": "BiocGenerics", + "Version": "0.48.1", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "R", + "graphics", + "methods", + "stats", + "utils" + ], + "Hash": "e34278c65d7dffcc08f737bf0944ca9a" + }, + "BiocManager": { + "Package": "BiocManager", + "Version": "1.30.22", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "utils" + ], + "Hash": "d57e43105a1aa9cb54fdb4629725acb1" + }, + "BiocNeighbors": { + "Package": "BiocNeighbors", + "Version": "1.20.2", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "BiocParallel", + "Matrix", + "Rcpp", + "RcppHNSW", + "S4Vectors", + "methods", + "stats" + ], + "Hash": "c5c8ade5852fd3b25c66ec28873d00f1" + }, + "BiocParallel": { + "Package": "BiocParallel", + "Version": "1.36.0", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "BH", + "R", + "codetools", + "cpp11", + "futile.logger", + "methods", + "parallel", + "snow", + "stats", + "utils" + ], + "Hash": "6d1689ee8b65614ba6ef4012a67b663a" + }, + "BiocVersion": { + "Package": "BiocVersion", + "Version": "3.18.1", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "2ecaed86684f5fae76ed5530f9d29c4a" + }, + "DelayedArray": { + "Package": "DelayedArray", + "Version": "0.28.0", + "Source": "Repository" + }, + "DelayedMatrixStats": { + "Package": "DelayedMatrixStats", + "Version": "1.24.0", + "Source": "Bioconductor", + "Requirements": [ + "DelayedArray", + "IRanges", + "Matrix", + "MatrixGenerics", + "S4Vectors", + "methods", + "sparseMatrixStats" + ], + "Hash": "71c2d178d33f9d91999f67dc2d53b747" + }, + "DropletUtils": { + "Package": "DropletUtils", + "Version": "1.22.0", + "Source": "Bioconductor", + "Requirements": [ + "BH", + "BiocGenerics", + "BiocParallel", + "DelayedArray", + "DelayedMatrixStats", + "GenomicRanges", + "HDF5Array", + "IRanges", + "Matrix", + "R.utils", + "Rcpp", + "Rhdf5lib", + "S4Vectors", + "SingleCellExperiment", + "SummarizedExperiment", + "beachmat", + "dqrng", + "edgeR", + "methods", + "rhdf5", + "scuttle", + "stats", + "utils" + ], + "Hash": "be3893d30c97591f1d3ec6f053830c3a" + }, + "GenomeInfoDb": { + "Package": "GenomeInfoDb", + "Version": "1.38.8", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "BiocGenerics", + "GenomeInfoDbData", + "IRanges", + "R", + "RCurl", + "S4Vectors", + "methods", + "stats", + "stats4", + "utils" + ], + "Hash": "155053909d2831bfac154a1118151d6b" + }, + "GenomeInfoDbData": { + "Package": "GenomeInfoDbData", + "Version": "1.2.11", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "10f32956181d1d46bd8402c93ac193e8" + }, + "GenomicRanges": { + "Package": "GenomicRanges", + "Version": "1.54.1", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "BiocGenerics", + "GenomeInfoDb", + "IRanges", + "R", + "S4Vectors", + "XVector", + "methods", + "stats", + "stats4", + "utils" + ], + "Hash": "7e0c1399af35369312d9c399454374e8" + }, + "HDF5Array": { + "Package": "HDF5Array", + "Version": "1.30.1", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "BiocGenerics", + "DelayedArray", + "IRanges", + "Matrix", + "R", + "Rhdf5lib", + "S4Arrays", + "S4Vectors", + "methods", + "rhdf5", + "rhdf5filters", + "stats", + "tools", + "utils" + ], + "Hash": "9b8deb4fd34fa439c16c829457d1968f" + }, + "IRanges": { + "Package": "IRanges", + "Version": "2.36.0", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "BiocGenerics", + "R", + "S4Vectors", + "methods", + "stats", + "stats4", + "utils" + ], + "Hash": "f98500eeb93e8a66ad65be955a848595" + }, + "MASS": { + "Package": "MASS", + "Version": "7.3-60.0.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "grDevices", + "graphics", + "methods", + "stats", + "utils" + ], + "Hash": "b765b28387acc8ec9e9c1530713cb19c" + }, + "Matrix": { + "Package": "Matrix", + "Version": "1.6-5", + "Source": "Repository" + }, + "MatrixGenerics": { + "Package": "MatrixGenerics", + "Version": "1.14.0", + "Source": "Bioconductor", + "Requirements": [ + "matrixStats", + "methods" + ], + "Hash": "088cd2077b5619fcb7b373b1a45174e7" + }, + "R.methodsS3": { + "Package": "R.methodsS3", + "Version": "1.8.2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "utils" + ], + "Hash": "278c286fd6e9e75d0c2e8f731ea445c8" + }, + "R.oo": { + "Package": "R.oo", + "Version": "1.26.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "R.methodsS3", + "methods", + "utils" + ], + "Hash": "4fed809e53ddb5407b3da3d0f572e591" + }, + "R.utils": { + "Package": "R.utils", + "Version": "2.12.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "R.methodsS3", + "R.oo", + "methods", + "tools", + "utils" + ], + "Hash": "3dc2829b790254bfba21e60965787651" + }, + "R6": { + "Package": "R6", + "Version": "2.5.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "470851b6d5d0ac559e9d01bb352b4021" + }, + "RColorBrewer": { + "Package": "RColorBrewer", + "Version": "1.1-3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "45f0398006e83a5b10b72a90663d8d8c" + }, + "RCurl": { + "Package": "RCurl", + "Version": "1.98-1.14", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "bitops", + "methods" + ], + "Hash": "47f648d288079d0c696804ad4e55197e" + }, + "Rcpp": { + "Package": "Rcpp", + "Version": "1.0.12", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "methods", + "utils" + ], + "Hash": "5ea2700d21e038ace58269ecdbeb9ec0" + }, + "RcppHNSW": { + "Package": "RcppHNSW", + "Version": "0.6.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "Rcpp", + "methods" + ], + "Hash": "1f2dc32c27746a35196aaf95adb357be" + }, + "Rhdf5lib": { + "Package": "Rhdf5lib", + "Version": "1.24.2", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "R" + ], + "Hash": "3cf103db29d75af0221d71946509a30c" + }, + "S4Arrays": { + "Package": "S4Arrays", + "Version": "1.2.1", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "BiocGenerics", + "IRanges", + "Matrix", + "R", + "S4Vectors", + "abind", + "crayon", + "methods", + "stats" + ], + "Hash": "3213a9826adb8f48e51af1e7b30fa568" + }, + "S4Vectors": { + "Package": "S4Vectors", + "Version": "0.40.2", + "Source": "Repository" + }, + "SingleCellExperiment": { + "Package": "SingleCellExperiment", + "Version": "1.24.0", + "Source": "Repository" + }, + "SparseArray": { + "Package": "SparseArray", + "Version": "1.2.4", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "BiocGenerics", + "IRanges", + "Matrix", + "MatrixGenerics", + "R", + "S4Arrays", + "S4Vectors", + "XVector", + "matrixStats", + "methods", + "stats" + ], + "Hash": "391092e7b81373ab624bd6471cebccd4" + }, + "SummarizedExperiment": { + "Package": "SummarizedExperiment", + "Version": "1.32.0", + "Source": "Repository" + }, + "XVector": { + "Package": "XVector", + "Version": "0.42.0", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "BiocGenerics", + "IRanges", + "R", + "S4Vectors", + "methods", + "tools", + "utils", + "zlibbioc" + ], + "Hash": "65c0b6bca03f88758f86ef0aa18c4873" + }, + "abind": { + "Package": "abind", + "Version": "1.4-5", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "methods", + "utils" + ], + "Hash": "4f57884290cc75ab22f4af9e9d4ca862" + }, + "basilisk": { + "Package": "basilisk", + "Version": "1.14.3", + "Source": "Repository" + }, + "beachmat": { + "Package": "beachmat", + "Version": "2.18.1", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "BiocGenerics", + "DelayedArray", + "Matrix", + "Rcpp", + "SparseArray", + "methods" + ], + "Hash": "c1c423ca7149d9e7f55d1e609342c2bd" + }, + "bitops": { + "Package": "bitops", + "Version": "1.0-7", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "b7d8d8ee39869c18d8846a184dd8a1af" + }, + "bluster": { + "Package": "bluster", + "Version": "1.12.0", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "BiocNeighbors", + "BiocParallel", + "Matrix", + "Rcpp", + "S4Vectors", + "cluster", + "igraph", + "methods", + "stats", + "utils" + ], + "Hash": "fca0d5ffad6380f13cad4d7855107aef" + }, + "broom": { + "Package": "broom", + "Version": "1.0.5", + "Source": "Repository" + }, + "cli": { + "Package": "cli", + "Version": "3.6.2", + "Source": "Repository" + }, + "cluster": { + "Package": "cluster", + "Version": "2.1.6", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "grDevices", + "graphics", + "stats", + "utils" + ], + "Hash": "0aaa05204035dc43ea0004b9c76611dd" + }, + "codetools": { + "Package": "codetools", + "Version": "0.2-20", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "61e097f35917d342622f21cdc79c256e" + }, + "colorspace": { + "Package": "colorspace", + "Version": "2.1-0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "grDevices", + "graphics", + "methods", + "stats" + ], + "Hash": "f20c47fd52fae58b4e377c37bb8c335b" + }, + "conflicted": { + "Package": "conflicted", + "Version": "1.2.0", + "Source": "Repository" + }, + "cpp11": { + "Package": "cpp11", + "Version": "0.4.7", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "5a295d7d963cc5035284dcdbaf334f4e" + }, + "crayon": { + "Package": "crayon", + "Version": "1.5.2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "grDevices", + "methods", + "utils" + ], + "Hash": "e8a1e41acf02548751f45c718d55aa6a" + }, + "dbplyr": { + "Package": "dbplyr", + "Version": "2.5.0", + "Source": "Repository" + }, + "dplyr": { + "Package": "dplyr", + "Version": "1.1.4", + "Source": "Repository" + }, + "dqrng": { + "Package": "dqrng", + "Version": "0.3.2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "BH", + "R", + "Rcpp", + "sitmo" + ], + "Hash": "824df2aeba88d701df5e79018b35b815" + }, + "dtplyr": { + "Package": "dtplyr", + "Version": "1.3.1", + "Source": "Repository" + }, + "edgeR": { + "Package": "edgeR", + "Version": "4.0.16", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "R", + "Rcpp", + "graphics", + "limma", + "locfit", + "methods", + "stats", + "utils" + ], + "Hash": "a0405c7890708dcb53809d46758800f4" + }, + "fansi": { + "Package": "fansi", + "Version": "1.0.6", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "grDevices", + "utils" + ], + "Hash": "962174cf2aeb5b9eea581522286a911f" + }, + "farver": { + "Package": "farver", + "Version": "2.1.1", + "Source": "Repository", + "Repository": "RSPM", + "Hash": "8106d78941f34855c440ddb946b8f7a5" + }, + "fishpond": { + "Package": "fishpond", + "Version": "2.8.0", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "GenomicRanges", + "IRanges", + "Matrix", + "S4Vectors", + "SingleCellExperiment", + "SummarizedExperiment", + "abind", + "graphics", + "gtools", + "jsonlite", + "matrixStats", + "methods", + "qvalue", + "stats", + "svMisc", + "utils" + ], + "Hash": "60ebe3366ccb6c1a11a99682f56f2a2f" + }, + "flexmix": { + "Package": "flexmix", + "Version": "2.3-19", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "grDevices", + "graphics", + "grid", + "lattice", + "methods", + "modeltools", + "nnet", + "stats", + "stats4", + "utils" + ], + "Hash": "0cb3c4b251c2d3fd5923d3e7e6021ee2" + }, + "forcats": { + "Package": "forcats", + "Version": "1.0.0", + "Source": "Repository" + }, + "formatR": { + "Package": "formatR", + "Version": "1.14", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "63cb26d12517c7863f5abb006c5e0f25" + }, + "futile.logger": { + "Package": "futile.logger", + "Version": "1.4.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "futile.options", + "lambda.r", + "utils" + ], + "Hash": "99f0ace8c05ec7d3683d27083c4f1e7e" + }, + "futile.options": { + "Package": "futile.options", + "Version": "1.0.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "0d9bf02413ddc2bbe8da9ce369dcdd2b" + }, + "generics": { + "Package": "generics", + "Version": "0.1.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "methods" + ], + "Hash": "15e9634c0fcd294799e9b2e929ed1b86" + }, + "ggplot2": { + "Package": "ggplot2", + "Version": "3.5.0", + "Source": "Repository" + }, + "glue": { + "Package": "glue", + "Version": "1.7.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "methods" + ], + "Hash": "e0b3a53876554bd45879e596cdb10a52" + }, + "googledrive": { + "Package": "googledrive", + "Version": "2.1.1", + "Source": "Repository" + }, + "googlesheets4": { + "Package": "googlesheets4", + "Version": "1.1.1", + "Source": "Repository" + }, + "gtable": { + "Package": "gtable", + "Version": "0.3.4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "cli", + "glue", + "grid", + "lifecycle", + "rlang" + ], + "Hash": "b29cf3031f49b04ab9c852c912547eef" + }, + "gtools": { + "Package": "gtools", + "Version": "3.9.5", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "methods", + "stats", + "utils" + ], + "Hash": "588d091c35389f1f4a9d533c8d709b35" + }, + "haven": { + "Package": "haven", + "Version": "2.5.4", + "Source": "Repository" + }, + "hms": { + "Package": "hms", + "Version": "1.1.3", + "Source": "Repository" + }, + "httr": { + "Package": "httr", + "Version": "1.4.7", + "Source": "Repository" + }, + "igraph": { + "Package": "igraph", + "Version": "2.0.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "Matrix", + "R", + "cli", + "cpp11", + "grDevices", + "graphics", + "lifecycle", + "magrittr", + "methods", + "pkgconfig", + "rlang", + "stats", + "utils", + "vctrs" + ], + "Hash": "c3b7d801d722e26e4cd888e042bf9af5" + }, + "isoband": { + "Package": "isoband", + "Version": "0.2.7", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "grid", + "utils" + ], + "Hash": "0080607b4a1a7b28979aecef976d8bc2" + }, + "jsonlite": { + "Package": "jsonlite", + "Version": "1.8.8", + "Source": "Repository" + }, + "labeling": { + "Package": "labeling", + "Version": "0.4.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "graphics", + "stats" + ], + "Hash": "b64ec208ac5bc1852b285f665d6368b3" + }, + "lambda.r": { + "Package": "lambda.r", + "Version": "1.2.4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "formatR" + ], + "Hash": "b1e925c4b9ffeb901bacf812cbe9a6ad" + }, + "lattice": { + "Package": "lattice", + "Version": "0.22-6", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "grDevices", + "graphics", + "grid", + "stats", + "utils" + ], + "Hash": "cc5ac1ba4c238c7ca9fa6a87ca11a7e2" + }, + "lifecycle": { + "Package": "lifecycle", + "Version": "1.0.4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "cli", + "glue", + "rlang" + ], + "Hash": "b8552d117e1b808b09a832f589b79035" + }, + "limma": { + "Package": "limma", + "Version": "3.58.1", + "Source": "Bioconductor", + "Requirements": [ + "R", + "grDevices", + "graphics", + "methods", + "statmod", + "stats", + "utils" + ], + "Hash": "74c3b64358e0be7edc3ecd130816dd3f" + }, + "locfit": { + "Package": "locfit", + "Version": "1.5-9.9", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "lattice" + ], + "Hash": "3885127e04b35dafded049075057ad83" + }, + "lubridate": { + "Package": "lubridate", + "Version": "1.9.3", + "Source": "Repository" + }, + "magrittr": { + "Package": "magrittr", + "Version": "2.0.3", + "Source": "Repository" + }, + "matrixStats": { + "Package": "matrixStats", + "Version": "1.3.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "4b3ea27a19d669c0405b38134d89a9d1" + }, + "methods": { + "Package": "methods", + "Version": "4.3.3", + "Source": "R" + }, + "mgcv": { + "Package": "mgcv", + "Version": "1.9-1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "Matrix", + "R", + "graphics", + "methods", + "nlme", + "splines", + "stats", + "utils" + ], + "Hash": "110ee9d83b496279960e162ac97764ce" + }, + "miQC": { + "Package": "miQC", + "Version": "1.10.0", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "R", + "SingleCellExperiment", + "flexmix", + "ggplot2", + "splines" + ], + "Hash": "5d3660451d88509307ce0b0e48748109" + }, + "modelr": { + "Package": "modelr", + "Version": "0.1.11", + "Source": "Repository" + }, + "modeltools": { + "Package": "modeltools", + "Version": "0.2-23", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "methods", + "stats", + "stats4" + ], + "Hash": "f5a957c02222589bdf625a67be68b2a9" + }, + "munsell": { + "Package": "munsell", + "Version": "0.5.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "colorspace", + "methods" + ], + "Hash": "4fd8900853b746af55b81fda99da7695" + }, + "nlme": { + "Package": "nlme", + "Version": "3.1-164", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "graphics", + "lattice", + "stats", + "utils" + ], + "Hash": "a623a2239e642806158bc4dc3f51565d" + }, + "nnet": { + "Package": "nnet", + "Version": "7.3-19", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "stats", + "utils" + ], + "Hash": "2c797b46eea7fb58ede195bc0b1f1138" + }, + "pillar": { + "Package": "pillar", + "Version": "1.9.0", + "Source": "Repository" + }, + "pkgconfig": { + "Package": "pkgconfig", + "Version": "2.0.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "utils" + ], + "Hash": "01f28d4278f15c76cddbea05899c5d6f" + }, + "plyr": { + "Package": "plyr", + "Version": "1.8.9", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "Rcpp" + ], + "Hash": "6b8177fd19982f0020743fadbfdbd933" + }, + "purrr": { + "Package": "purrr", + "Version": "1.0.2", + "Source": "Repository" + }, + "qvalue": { + "Package": "qvalue", + "Version": "2.34.0", + "Source": "Bioconductor", + "Requirements": [ + "R", + "ggplot2", + "grid", + "reshape2", + "splines" + ], + "Hash": "76fc42834c44b69e4021f6ade524d299" + }, + "ragg": { + "Package": "ragg", + "Version": "1.3.0", + "Source": "Repository" + }, + "readr": { + "Package": "readr", + "Version": "2.1.5", + "Source": "Repository" + }, + "readxl": { + "Package": "readxl", + "Version": "1.4.3", + "Source": "Repository" + }, + "renv": { + "Package": "renv", + "Version": "1.0.7", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "utils" + ], + "Hash": "397b7b2a265bc5a7a06852524dabae20" + }, + "reprex": { + "Package": "reprex", + "Version": "2.1.0", + "Source": "Repository" + }, + "reshape2": { + "Package": "reshape2", + "Version": "1.4.4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "Rcpp", + "plyr", + "stringr" + ], + "Hash": "bb5996d0bd962d214a11140d77589917" + }, + "reticulate": { + "Package": "reticulate", + "Version": "1.36.0", + "Source": "Repository" + }, + "rhdf5": { + "Package": "rhdf5", + "Version": "2.46.1", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "R", + "Rhdf5lib", + "S4Vectors", + "methods", + "rhdf5filters" + ], + "Hash": "b0a244022c3427cd8213c33804c6b5de" + }, + "rhdf5filters": { + "Package": "rhdf5filters", + "Version": "1.14.1", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "Rhdf5lib" + ], + "Hash": "d27a2f6a89def6388fad5b0aae026220" + }, + "rlang": { + "Package": "rlang", + "Version": "1.1.3", + "Source": "Repository" + }, + "rstudioapi": { + "Package": "rstudioapi", + "Version": "0.16.0", + "Source": "Repository" + }, + "rvest": { + "Package": "rvest", + "Version": "1.0.4", + "Source": "Repository" + }, + "scales": { + "Package": "scales", + "Version": "1.3.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "R6", + "RColorBrewer", + "cli", + "farver", + "glue", + "labeling", + "lifecycle", + "munsell", + "rlang", + "viridisLite" + ], + "Hash": "c19df082ba346b0ffa6f833e92de34d1" + }, + "scuttle": { + "Package": "scuttle", + "Version": "1.12.0", + "Source": "Bioconductor", + "Requirements": [ + "BiocGenerics", + "BiocParallel", + "DelayedArray", + "DelayedMatrixStats", + "GenomicRanges", + "Matrix", + "Rcpp", + "S4Vectors", + "SingleCellExperiment", + "SummarizedExperiment", + "beachmat", + "methods", + "stats", + "utils" + ], + "Hash": "1412c4b6dfd8de528e1101e493e66a02" + }, + "sitmo": { + "Package": "sitmo", + "Version": "2.0.2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "Rcpp" + ], + "Hash": "c956d93f6768a9789edbc13072b70c78" + }, + "snow": { + "Package": "snow", + "Version": "0.4-4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "utils" + ], + "Hash": "40b74690debd20c57d93d8c246b305d4" + }, + "sparseMatrixStats": { + "Package": "sparseMatrixStats", + "Version": "1.14.0", + "Source": "Bioconductor", + "Requirements": [ + "Matrix", + "MatrixGenerics", + "Rcpp", + "matrixStats", + "methods" + ], + "Hash": "49383d0f6c6152ff7cb594f254c23cc8" + }, + "statmod": { + "Package": "statmod", + "Version": "1.5.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "graphics", + "stats" + ], + "Hash": "26e158d12052c279bdd4ba858b80fb1f" + }, + "stringi": { + "Package": "stringi", + "Version": "1.8.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "stats", + "tools", + "utils" + ], + "Hash": "058aebddea264f4c99401515182e656a" + }, + "stringr": { + "Package": "stringr", + "Version": "1.5.1", + "Source": "Repository" + }, + "svMisc": { + "Package": "svMisc", + "Version": "1.2.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "methods", + "stats", + "tools", + "utils" + ], + "Hash": "b13f5680860f67c32ccb006ad38f24f4" + }, + "tibble": { + "Package": "tibble", + "Version": "3.2.1", + "Source": "Repository" + }, + "tidyr": { + "Package": "tidyr", + "Version": "1.3.1", + "Source": "Repository" + }, + "tidyselect": { + "Package": "tidyselect", + "Version": "1.2.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "cli", + "glue", + "lifecycle", + "rlang", + "vctrs", + "withr" + ], + "Hash": "829f27b9c4919c16b593794a6344d6c0" + }, + "tximport": { + "Package": "tximport", + "Version": "1.30.0", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "methods", + "stats", + "utils" + ], + "Hash": "6e9621b0f1bf9398255f32c7000a7e16" + }, + "utf8": { + "Package": "utf8", + "Version": "1.2.4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "62b65c52671e6665f803ff02954446e9" + }, + "utils": { + "Package": "utils", + "Version": "4.3.3", + "Source": "R" + }, + "vctrs": { + "Package": "vctrs", + "Version": "0.6.5", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "cli", + "glue", + "lifecycle", + "rlang" + ], + "Hash": "c03fa420630029418f7e6da3667aac4a" + }, + "viridisLite": { + "Package": "viridisLite", + "Version": "0.4.2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "c826c7c4241b6fc89ff55aaea3fa7491" + }, + "withr": { + "Package": "withr", + "Version": "3.0.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "grDevices", + "graphics" + ], + "Hash": "d31b6c62c10dcf11ec530ca6b0dd5d35" + }, + "xml2": { + "Package": "xml2", + "Version": "1.3.6", + "Source": "Repository" + }, + "zlibbioc": { + "Package": "zlibbioc", + "Version": "1.48.2", + "Source": "Bioconductor", + "Repository": "RSPM", + "Hash": "2344be62c2da4d9e9942b5d8db346e59" + } + } +} diff --git a/docker/requirements_slim.in b/docker/requirements_anndata.in similarity index 100% rename from docker/requirements_slim.in rename to docker/requirements_anndata.in diff --git a/docker/requirements_slim.txt b/docker/requirements_anndata.txt similarity index 68% rename from docker/requirements_slim.txt rename to docker/requirements_anndata.txt index 8cfe41ca..071e9357 100644 --- a/docker/requirements_slim.txt +++ b/docker/requirements_anndata.txt @@ -2,11 +2,11 @@ # This file is autogenerated by pip-compile with Python 3.10 # by the following command: # -# pip-compile --no-annotate --output-file=requirements_slim.txt --strip-extras requirements_slim.in +# pip-compile --no-annotate --output-file=requirements_anndata.txt --strip-extras requirements_anndata.in # anndata==0.10.7 array-api-compat==1.6 -exceptiongroup==1.2.0 +exceptiongroup==1.2.1 h5py==3.11.0 natsort==8.4.0 numpy==1.26.4 diff --git a/docker/scripts/make-lockfile.R b/docker/scripts/make-lockfile.R new file mode 100644 index 00000000..15100668 --- /dev/null +++ b/docker/scripts/make-lockfile.R @@ -0,0 +1,42 @@ +#!/usr/bin/env Rscript + +library(optparse) + +option_list <- list( + make_option( + c("-f", "--lockfile"), + type = "character", + default = NULL, + help = "The lockfile to create." + ), + make_option( + c("-p", "--packages"), + type = "character", + default = "", + help = paste( + "Additional packages to include in the lockfile beyond scpcaTools requirements.", + "Comma, semicolon, or space separated." + ) + ) +) + +opts <- parse_args(OptionParser(option_list = option_list)) + +# change to project root to get renv (renv::load does not set bioc mirrors) +current_dir <- getwd() +setwd(here::here()) +source(".Rprofile") +setwd(current_dir) + +# get dependencies of scpcaTools +renv::snapshot(lockfile = opts$lockfile, type = "explicit") + +# additional dependencies for added packages +added_packages <- opts$packages |> + stringr::str_split_1("[,;\\s]+") |> + c("tidyverse") |> # always include tidyverse + tools::package_dependencies() |> + unlist() |> + unique() + +renv::record(added_packages, lockfile = opts$lockfile) From c358f00b822f2eaf6f1b45eedc97196d51dc727c Mon Sep 17 00:00:00 2001 From: Joshua Shapiro Date: Fri, 19 Apr 2024 13:52:49 -0400 Subject: [PATCH 06/28] Add anndata image --- docker/scpcatools_anndata.Dockerfile | 40 +++++++++++++++++++ ....Dockerfile => scpcatools_slim.Dockerfile} | 14 ++++--- 2 files changed, 49 insertions(+), 5 deletions(-) create mode 100644 docker/scpcatools_anndata.Dockerfile rename docker/{scpcatools-slim.Dockerfile => scpcatools_slim.Dockerfile} (75%) diff --git a/docker/scpcatools_anndata.Dockerfile b/docker/scpcatools_anndata.Dockerfile new file mode 100644 index 00000000..f740f58d --- /dev/null +++ b/docker/scpcatools_anndata.Dockerfile @@ -0,0 +1,40 @@ +FROM rocker/r-ver:4.3.3 +LABEL maintainer="ccdl@alexslemonade.org" +LABEL org.opencontainers.image.source https://github.com/AlexsLemonade/scpcaTools +LABEL org.opencontainers.image.title "scpcatools-anndata" + +COPY scripts/install_scpca_deps.sh . + +RUN bash ./install_scpca_deps.sh + +#### R packages +# Use renv for R packages +ENV RENV_CONFIG_CACHE_ENABLED FALSE +RUN Rscript -e "install.packages(c('remotes', 'renv'))" + +WORKDIR /usr/local/renv +COPY renv_zellkonverter.lock renv.lock +# restore renv and remove cache files +RUN Rscript -e "renv::restore()" && \ + rm -rf ~/.cache/R/renv && \ + rm -rf /tmp/downloaded_packages && \ + rm -rf /tmp/Rtmp* + +# Complete installation of zellkonverter conda env +ENV BASILISK_EXTERNAL_DIR /usr/local/renv/basilisk +RUN Rscript -e "proc <- basilisk::basiliskStart(env = zellkonverter::zellkonverterAnnDataEnv(), testload = 'anndata'); \ + basilisk::basiliskStop(proc)" + +#### Python packages +COPY requirements_anndata.txt requirements.txt +RUN pip install --no-cache-dir -r requirements.txt + +########################## +# bust cache if needed +ADD "https://api.github.com/repos/AlexsLemonade/scpcaTools/commits?per_page=1" latest_commit +# Install scpcaTools package (& test loading) +RUN Rscript -e "remotes::install_github('AlexsLemonade/scpcaTools', upgrade = 'never'); \ + require(scpcaTools)" + +# set final workdir for commands +WORKDIR /home diff --git a/docker/scpcatools-slim.Dockerfile b/docker/scpcatools_slim.Dockerfile similarity index 75% rename from docker/scpcatools-slim.Dockerfile rename to docker/scpcatools_slim.Dockerfile index bf71ecf0..e5f634db 100644 --- a/docker/scpcatools-slim.Dockerfile +++ b/docker/scpcatools_slim.Dockerfile @@ -1,7 +1,11 @@ -FROM bioconductor/bioconductor_docker:RELEASE_3_18 +FROM rocker/r-ver:4.3.3 LABEL maintainer="ccdl@alexslemonade.org" LABEL org.opencontainers.image.source https://github.com/AlexsLemonade/scpcaTools -LABEL org.opencontainers.image.title "scpcaTools-bioconductor" +LABEL org.opencontainers.image.title "scpcatools-slim" + +COPY scripts/install_scpca_deps.sh . + +RUN bash ./install_scpca_deps.sh #### R packages # Use renv for R packages @@ -12,9 +16,9 @@ WORKDIR /usr/local/renv COPY renv_slim.lock renv.lock # restore renv and remove cache files RUN Rscript -e "renv::restore()" && \ - rm -rf ~/.cache/R/renv && \ - rm -rf /tmp/downloaded_packages && \ - rm -rf /tmp/Rtmp* + rm -rf ~/.cache/R/renv && \ + rm -rf /tmp/downloaded_packages && \ + rm -rf /tmp/Rtmp* ########################## # bust cache if needed From a9a39164616fea281b1496855fd453031bc1cdb5 Mon Sep 17 00:00:00 2001 From: Joshua Shapiro Date: Fri, 19 Apr 2024 14:11:43 -0400 Subject: [PATCH 07/28] try suffixes --- .github/workflows/build-docker.yaml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-docker.yaml b/.github/workflows/build-docker.yaml index b4a1390c..a5174091 100644 --- a/.github/workflows/build-docker.yaml +++ b/.github/workflows/build-docker.yaml @@ -1,4 +1,4 @@ -name: Build scpca-tools image +name: Build scpca-tools images on: push: @@ -25,8 +25,10 @@ jobs: include: - image: alexslemonade/scpcatools dockerfile: Dockerfile + suffix: "" - image: alexslemonade/scpcatools-slim - dockerfile: scpcatools-slim.Dockerfile + dockerfile: scpcatools_slim.Dockerfile + suffix: "-slim" steps: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v2 @@ -43,6 +45,7 @@ jobs: uses: docker/metadata-action@v4 with: images: ${{ env.REGISTRY }}/${{ matrix.image }} + flavor: suffix=${{ matrix.suffix }},onlatest=true tags: | type=semver,pattern={{raw}} type=edge,branch=main From fc378b6fb73fb4834ca41b075ca0e3c1ad04c0a9 Mon Sep 17 00:00:00 2001 From: Joshua Shapiro Date: Fri, 19 Apr 2024 14:13:22 -0400 Subject: [PATCH 08/28] every build is edge just to test tags --- .github/workflows/build-docker.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-docker.yaml b/.github/workflows/build-docker.yaml index a5174091..a56eac26 100644 --- a/.github/workflows/build-docker.yaml +++ b/.github/workflows/build-docker.yaml @@ -48,7 +48,7 @@ jobs: flavor: suffix=${{ matrix.suffix }},onlatest=true tags: | type=semver,pattern={{raw}} - type=edge,branch=main + type=edge - uses: docker/build-push-action@v4 with: From b19174776b363bcedb5201c2b2301ce7da417022 Mon Sep 17 00:00:00 2001 From: Joshua Shapiro Date: Fri, 19 Apr 2024 14:14:39 -0400 Subject: [PATCH 09/28] Revert "every build is edge just to test tags" This reverts commit fc378b6fb73fb4834ca41b075ca0e3c1ad04c0a9. --- .github/workflows/build-docker.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-docker.yaml b/.github/workflows/build-docker.yaml index a56eac26..a5174091 100644 --- a/.github/workflows/build-docker.yaml +++ b/.github/workflows/build-docker.yaml @@ -48,7 +48,7 @@ jobs: flavor: suffix=${{ matrix.suffix }},onlatest=true tags: | type=semver,pattern={{raw}} - type=edge + type=edge,branch=main - uses: docker/build-push-action@v4 with: From 5018b87febcbc0707d72041746560012358f5154 Mon Sep 17 00:00:00 2001 From: Joshua Shapiro Date: Fri, 19 Apr 2024 14:16:57 -0400 Subject: [PATCH 10/28] Back to one image name --- .github/workflows/build-docker.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-docker.yaml b/.github/workflows/build-docker.yaml index a5174091..24a05d30 100644 --- a/.github/workflows/build-docker.yaml +++ b/.github/workflows/build-docker.yaml @@ -12,6 +12,7 @@ on: env: REGISTRY: ghcr.io + IMAGE: alexslemonade/scpcatools jobs: build_and_push: @@ -23,8 +24,7 @@ jobs: fail-fast: false matrix: include: - - image: alexslemonade/scpcatools - dockerfile: Dockerfile + - dockerfile: Dockerfile suffix: "" - image: alexslemonade/scpcatools-slim dockerfile: scpcatools_slim.Dockerfile @@ -44,7 +44,7 @@ jobs: id: meta uses: docker/metadata-action@v4 with: - images: ${{ env.REGISTRY }}/${{ matrix.image }} + images: ${{ env.REGISTRY }}/${{ env.IMAGE}} flavor: suffix=${{ matrix.suffix }},onlatest=true tags: | type=semver,pattern={{raw}} From 74acec9f2bfcda7e2b3621ab9d77bf4f3636177c Mon Sep 17 00:00:00 2001 From: Joshua Shapiro Date: Fri, 19 Apr 2024 14:35:49 -0400 Subject: [PATCH 11/28] Add readme and other docs --- docker/README.md | 24 +++++++++++++++++++++--- docker/environment.yml | 7 +++++++ docker/make-requirements.sh | 2 +- docker/scripts/make-lockfile.R | 5 +++++ inst/WORDLIST | 3 +++ 5 files changed, 37 insertions(+), 4 deletions(-) create mode 100644 docker/environment.yml diff --git a/docker/README.md b/docker/README.md index c276a7ba..377cf121 100644 --- a/docker/README.md +++ b/docker/README.md @@ -5,11 +5,29 @@ The image is built from a versioned Rocker image, with additional R packages and It can be built with the following command run in this directory: ``` -docker buildx build . -t scpca-tools --platform linux/amd64 +docker buildx build . -t scpcatools --platform linux/amd64 ``` -Note that this image does not include RStudio, in attempt to make the image smaller. +Note that this image does not include RStudio, in attempt to make the image smaller. This image is built automatically on every update to `scpcaTools` (`main`) and pushed to `ghcr.io/alexslemonade/scpca-tools:edge`. -Release versions of `scpcaTools` will be tagged as `ghcr.io/alexslemonade/scpca-tools:latest` and tagged by version number. +Release versions of `scpcaTools` will be tagged as `ghcr.io/alexslemonade/scpcatools:latest` and tagged by version number. + +The main image includes all of the recommended packages for `scpcaTools` (aside from those only required for development), as well as the Python `scanpy` and `scvi-tools` packages and dependencies. + +There are also smaller images that can be built, which include only the R packages required for `scpcaTools`, with particular additions for specific purposes. These include: + +- `scpcatools_slim.Dockerfile`: A smaller image that includes only the required R packages for `scpcaTools`, with no additional packages. +- `scpcatools_anndata.Dockerfile`: The slim package with the addition of the `zellkonverter` package for reading and writing `AnnData` objects, and the Python `anndata` package. + +These images are built automatically on every update to `scpcaTools` (`main`) and pushed to `ghcr.io/alexslemonade/scpcatools:edge-slim` and `ghcr.io/alexslemonade/scpcatools:edge-anndata`, respectively. + +## Setting R and Python dependencies + +Dependency lock files are built using the `make-requirements.sh` script. +This script depends on `pip-tools` and should be run using Python 3.10 to match the default version of Python in the Docker images. +For convenience, a conda `environment.yml` file is included in this directory that can be used to create an `scpcatools-dev` environment with the necessary Python version and packages. + +This script will generate the `requirements.txt` and `renv.lock` files for each set of Python packages to be installed within the various Docker images. +These are based on `requirements.in` files that specify the high-level package requirements for each image. diff --git a/docker/environment.yml b/docker/environment.yml new file mode 100644 index 00000000..7e1c8357 --- /dev/null +++ b/docker/environment.yml @@ -0,0 +1,7 @@ +name: scpcatools-dev +channels: + - conda-forge + - defaults +dependencies: + - python=3.10 + - pip-tools diff --git a/docker/make-requirements.sh b/docker/make-requirements.sh index 899bd1eb..b6f2ce3f 100644 --- a/docker/make-requirements.sh +++ b/docker/make-requirements.sh @@ -1,6 +1,6 @@ #!/bin/bash set -euo pipefail -# This script is used to generate requirements files for R and python packages +# This script is used to generate requirements files for R and Python packages # Requires that the `pip-tools` python package is installed. # Set the working directory to the directory of this file diff --git a/docker/scripts/make-lockfile.R b/docker/scripts/make-lockfile.R index 15100668..087202e9 100644 --- a/docker/scripts/make-lockfile.R +++ b/docker/scripts/make-lockfile.R @@ -1,5 +1,10 @@ #!/usr/bin/env Rscript +# This script is used to make a lockfile based on the current renv environment, +# including scpcaTools dependencies and any additional packages specified by the user. +# This means that it does _not_ look at what files are used by scripts in the project, except +# for the package DESCRIPTION file. + library(optparse) option_list <- list( diff --git a/inst/WORDLIST b/inst/WORDLIST index e71f36ae..b8a39257 100644 --- a/inst/WORDLIST +++ b/inst/WORDLIST @@ -10,6 +10,8 @@ CMD colData coldata commenter +conda +dev Dockerfile DropletUtils emptyDrops @@ -33,6 +35,7 @@ ScPCA scpca scpcaData scpcaTools +scpcatools SingleCellExperiment Spielman tidyverse From 8a99e404a2825911a7c57b42481421bdee25ab25 Mon Sep 17 00:00:00 2001 From: Joshua Shapiro Date: Fri, 19 Apr 2024 16:33:08 -0400 Subject: [PATCH 12/28] Bioconductor does have r-ver! --- docker/Dockerfile | 10 +++++----- docker/scpcatools_anndata.Dockerfile | 2 +- docker/scpcatools_slim.Dockerfile | 2 +- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 0e003004..2d53c39b 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -1,4 +1,4 @@ -FROM rocker/r-ver:4.3.3 +FROM bioconductor/r-ver:3.18 LABEL maintainer="ccdl@alexslemonade.org" LABEL org.opencontainers.image.source https://github.com/AlexsLemonade/scpcaTools @@ -15,14 +15,14 @@ WORKDIR /usr/local/renv COPY renv.lock renv.lock # restore renv and remove cache files RUN Rscript -e "renv::restore()" && \ - rm -rf ~/.cache/R/renv && \ - rm -rf /tmp/downloaded_packages && \ - rm -rf /tmp/Rtmp* + rm -rf ~/.cache/R/renv && \ + rm -rf /tmp/downloaded_packages && \ + rm -rf /tmp/Rtmp* # Complete installation of zellkonverter conda env ENV BASILISK_EXTERNAL_DIR /usr/local/renv/basilisk RUN Rscript -e "proc <- basilisk::basiliskStart(env = zellkonverter::zellkonverterAnnDataEnv(), testload = 'anndata'); \ - basilisk::basiliskStop(proc)" + basilisk::basiliskStop(proc)" #### Python packages COPY requirements.txt requirements.txt diff --git a/docker/scpcatools_anndata.Dockerfile b/docker/scpcatools_anndata.Dockerfile index f740f58d..d84cdd4b 100644 --- a/docker/scpcatools_anndata.Dockerfile +++ b/docker/scpcatools_anndata.Dockerfile @@ -1,4 +1,4 @@ -FROM rocker/r-ver:4.3.3 +FROM bioconductor/r-ver:3.18 LABEL maintainer="ccdl@alexslemonade.org" LABEL org.opencontainers.image.source https://github.com/AlexsLemonade/scpcaTools LABEL org.opencontainers.image.title "scpcatools-anndata" diff --git a/docker/scpcatools_slim.Dockerfile b/docker/scpcatools_slim.Dockerfile index e5f634db..6889b891 100644 --- a/docker/scpcatools_slim.Dockerfile +++ b/docker/scpcatools_slim.Dockerfile @@ -1,4 +1,4 @@ -FROM rocker/r-ver:4.3.3 +FROM bioconductor/r-ver:3.18 LABEL maintainer="ccdl@alexslemonade.org" LABEL org.opencontainers.image.source https://github.com/AlexsLemonade/scpcaTools LABEL org.opencontainers.image.title "scpcatools-slim" From 39fce472b4e72733127a45f74d87e16b7eba48fc Mon Sep 17 00:00:00 2001 From: Joshua Shapiro Date: Fri, 19 Apr 2024 16:39:45 -0400 Subject: [PATCH 13/28] does r-ver mean we don't need dependencies? --- docker/Dockerfile | 4 ---- docker/scpcatools_anndata.Dockerfile | 4 ---- docker/scpcatools_slim.Dockerfile | 4 ---- 3 files changed, 12 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 2d53c39b..83562249 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -2,10 +2,6 @@ FROM bioconductor/r-ver:3.18 LABEL maintainer="ccdl@alexslemonade.org" LABEL org.opencontainers.image.source https://github.com/AlexsLemonade/scpcaTools -COPY scripts/install_scpca_deps.sh . - -RUN bash ./install_scpca_deps.sh - #### R packages # Use renv for R packages ENV RENV_CONFIG_CACHE_ENABLED FALSE diff --git a/docker/scpcatools_anndata.Dockerfile b/docker/scpcatools_anndata.Dockerfile index d84cdd4b..5ab22371 100644 --- a/docker/scpcatools_anndata.Dockerfile +++ b/docker/scpcatools_anndata.Dockerfile @@ -3,10 +3,6 @@ LABEL maintainer="ccdl@alexslemonade.org" LABEL org.opencontainers.image.source https://github.com/AlexsLemonade/scpcaTools LABEL org.opencontainers.image.title "scpcatools-anndata" -COPY scripts/install_scpca_deps.sh . - -RUN bash ./install_scpca_deps.sh - #### R packages # Use renv for R packages ENV RENV_CONFIG_CACHE_ENABLED FALSE diff --git a/docker/scpcatools_slim.Dockerfile b/docker/scpcatools_slim.Dockerfile index 6889b891..8883a22e 100644 --- a/docker/scpcatools_slim.Dockerfile +++ b/docker/scpcatools_slim.Dockerfile @@ -3,10 +3,6 @@ LABEL maintainer="ccdl@alexslemonade.org" LABEL org.opencontainers.image.source https://github.com/AlexsLemonade/scpcaTools LABEL org.opencontainers.image.title "scpcatools-slim" -COPY scripts/install_scpca_deps.sh . - -RUN bash ./install_scpca_deps.sh - #### R packages # Use renv for R packages ENV RENV_CONFIG_CACHE_ENABLED FALSE From 9b39a8d2e11ce4e4887acca81284de8ba7f9d546 Mon Sep 17 00:00:00 2001 From: Joshua Shapiro Date: Fri, 19 Apr 2024 16:50:54 -0400 Subject: [PATCH 14/28] docker action version updates mostly just for node updates --- .github/workflows/build-docker.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-docker.yaml b/.github/workflows/build-docker.yaml index 24a05d30..f3e5887d 100644 --- a/.github/workflows/build-docker.yaml +++ b/.github/workflows/build-docker.yaml @@ -31,10 +31,10 @@ jobs: suffix: "-slim" steps: - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v2 + uses: docker/setup-buildx-action@v3 - name: Docker login - uses: docker/login-action@v2 + uses: docker/login-action@v3 with: registry: ${{ env.REGISTRY }} username: ${{ github.actor }} @@ -42,7 +42,7 @@ jobs: - name: Docker metadata id: meta - uses: docker/metadata-action@v4 + uses: docker/metadata-action@v5 with: images: ${{ env.REGISTRY }}/${{ env.IMAGE}} flavor: suffix=${{ matrix.suffix }},onlatest=true @@ -50,7 +50,7 @@ jobs: type=semver,pattern={{raw}} type=edge,branch=main - - uses: docker/build-push-action@v4 + - uses: docker/build-push-action@v5 with: context: "{{defaultContext}}:docker" file: ${{ matrix.dockerfile }} From 96d40dde7b9805ee81975bceafd04db1afdbe8e4 Mon Sep 17 00:00:00 2001 From: Joshua Shapiro Date: Sun, 21 Apr 2024 08:58:25 -0400 Subject: [PATCH 15/28] Fix a couple gha file inconsistencies --- .github/workflows/build-docker.yaml | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build-docker.yaml b/.github/workflows/build-docker.yaml index f3e5887d..e1ac8080 100644 --- a/.github/workflows/build-docker.yaml +++ b/.github/workflows/build-docker.yaml @@ -12,7 +12,7 @@ on: env: REGISTRY: ghcr.io - IMAGE: alexslemonade/scpcatools + IMAGE_NAME: alexslemonade/scpcatools jobs: build_and_push: @@ -26,8 +26,7 @@ jobs: include: - dockerfile: Dockerfile suffix: "" - - image: alexslemonade/scpcatools-slim - dockerfile: scpcatools_slim.Dockerfile + - dockerfile: scpcatools_slim.Dockerfile suffix: "-slim" steps: - name: Set up Docker Buildx @@ -44,7 +43,7 @@ jobs: id: meta uses: docker/metadata-action@v5 with: - images: ${{ env.REGISTRY }}/${{ env.IMAGE}} + images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} flavor: suffix=${{ matrix.suffix }},onlatest=true tags: | type=semver,pattern={{raw}} From 7dd7febfc8ab0d57edbd9f088359c45661527dcb Mon Sep 17 00:00:00 2001 From: Joshua Shapiro Date: Mon, 22 Apr 2024 10:48:42 -0400 Subject: [PATCH 16/28] Test without p3m for bioconductor --- .Dockerignore | 0 .Rprofile | 4 --- docker/renv.lock | 91 ------------------------------------------------ 3 files changed, 95 deletions(-) create mode 100644 .Dockerignore diff --git a/.Dockerignore b/.Dockerignore new file mode 100644 index 00000000..e69de29b diff --git a/.Rprofile b/.Rprofile index a44306b3..6f649330 100644 --- a/.Rprofile +++ b/.Rprofile @@ -1,6 +1,2 @@ -# Configure BioCManager to use Posit Public Package Manager: -options(BioC_mirror = "https://p3m.dev/bioconductor") -options(BIOCONDUCTOR_CONFIG_FILE = "https://p3m.dev/bioconductor/config.yaml") - # activate renv source("renv/activate.R") diff --git a/docker/renv.lock b/docker/renv.lock index 4e5d27af..c69ddcdf 100644 --- a/docker/renv.lock +++ b/docker/renv.lock @@ -2,26 +2,6 @@ "R": { "Version": "4.3.3", "Repositories": [ - { - "Name": "BioCsoft", - "URL": "https://p3m.dev/bioconductor/packages/3.18/bioc" - }, - { - "Name": "BioCann", - "URL": "https://p3m.dev/bioconductor/packages/3.18/data/annotation" - }, - { - "Name": "BioCexp", - "URL": "https://p3m.dev/bioconductor/packages/3.18/data/experiment" - }, - { - "Name": "BioCworkflows", - "URL": "https://p3m.dev/bioconductor/packages/3.18/workflows" - }, - { - "Name": "BioCbooks", - "URL": "https://p3m.dev/bioconductor/packages/3.18/books" - }, { "Name": "CRAN", "URL": "https://p3m.dev/cran/latest" @@ -36,7 +16,6 @@ "Package": "AnnotationDbi", "Version": "1.64.1", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "Biobase", "BiocGenerics", @@ -56,7 +35,6 @@ "Package": "AnnotationFilter", "Version": "1.26.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "GenomicRanges", "R", @@ -70,7 +48,6 @@ "Package": "AnnotationHub", "Version": "3.10.1", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "AnnotationDbi", "BiocFileCache", @@ -102,7 +79,6 @@ "Package": "BSgenome", "Version": "1.70.2", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "BiocIO", @@ -126,7 +102,6 @@ "Package": "Biobase", "Version": "2.62.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "R", @@ -139,7 +114,6 @@ "Package": "BiocFileCache", "Version": "2.10.2", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "DBI", "R", @@ -159,7 +133,6 @@ "Package": "BiocGenerics", "Version": "0.48.1", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "R", "graphics", @@ -173,7 +146,6 @@ "Package": "BiocIO", "Version": "1.12.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "R", @@ -197,7 +169,6 @@ "Package": "BiocNeighbors", "Version": "1.20.2", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocParallel", "Matrix", @@ -213,7 +184,6 @@ "Package": "BiocParallel", "Version": "1.36.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BH", "R", @@ -232,7 +202,6 @@ "Package": "BiocSingular", "Version": "1.18.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "BiocParallel", @@ -253,7 +222,6 @@ "Package": "BiocVersion", "Version": "3.18.1", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "R" ], @@ -263,7 +231,6 @@ "Package": "Biostrings", "Version": "2.70.3", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "GenomeInfoDb", @@ -296,7 +263,6 @@ "Package": "ComplexHeatmap", "Version": "2.18.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "GetoptLong", "GlobalOptions", @@ -352,7 +318,6 @@ "Package": "DelayedArray", "Version": "0.28.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "IRanges", @@ -372,7 +337,6 @@ "Package": "DelayedMatrixStats", "Version": "1.24.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "DelayedArray", "IRanges", @@ -388,7 +352,6 @@ "Package": "DropletUtils", "Version": "1.22.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BH", "BiocGenerics", @@ -420,7 +383,6 @@ "Package": "ExperimentHub", "Version": "2.10.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "AnnotationHub", "BiocFileCache", @@ -447,7 +409,6 @@ "Package": "GenomeInfoDb", "Version": "1.38.8", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "GenomeInfoDbData", @@ -466,7 +427,6 @@ "Package": "GenomeInfoDbData", "Version": "1.2.11", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "R" ], @@ -476,7 +436,6 @@ "Package": "GenomicAlignments", "Version": "1.38.2", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "BiocParallel", @@ -498,7 +457,6 @@ "Package": "GenomicFeatures", "Version": "1.54.4", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "AnnotationDbi", "Biobase", @@ -528,7 +486,6 @@ "Package": "GenomicRanges", "Version": "1.54.1", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "GenomeInfoDb", @@ -573,7 +530,6 @@ "Package": "HDF5Array", "Version": "1.30.1", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "DelayedArray", @@ -596,7 +552,6 @@ "Package": "IRanges", "Version": "2.36.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "R", @@ -612,7 +567,6 @@ "Package": "KEGGREST", "Version": "1.42.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "Biostrings", "R", @@ -669,7 +623,6 @@ "Package": "MatrixGenerics", "Version": "1.14.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "matrixStats", "methods" @@ -680,7 +633,6 @@ "Package": "ProtGenerics", "Version": "1.34.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "methods" ], @@ -908,7 +860,6 @@ "Package": "ResidualMatrix", "Version": "1.12.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "DelayedArray", "Matrix", @@ -921,7 +872,6 @@ "Package": "Rgraphviz", "Version": "2.46.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -938,7 +888,6 @@ "Package": "Rhdf5lib", "Version": "1.24.2", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "R" ], @@ -955,7 +904,6 @@ "Package": "Rhtslib", "Version": "2.4.1", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "zlibbioc" ], @@ -965,7 +913,6 @@ "Package": "Rsamtools", "Version": "2.18.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "BiocParallel", @@ -1000,7 +947,6 @@ "Package": "S4Arrays", "Version": "1.2.1", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "IRanges", @@ -1018,7 +964,6 @@ "Package": "S4Vectors", "Version": "0.40.2", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "R", @@ -1033,7 +978,6 @@ "Package": "ScaledMatrix", "Version": "1.10.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "DelayedArray", "Matrix", @@ -1140,7 +1084,6 @@ "Package": "SingleCellExperiment", "Version": "1.24.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "DelayedArray", @@ -1157,7 +1100,6 @@ "Package": "SingleR", "Version": "2.4.1", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocNeighbors", "BiocParallel", @@ -1180,7 +1122,6 @@ "Package": "SparseArray", "Version": "1.2.4", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "IRanges", @@ -1200,7 +1141,6 @@ "Package": "SummarizedExperiment", "Version": "1.32.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "Biobase", "BiocGenerics", @@ -1236,7 +1176,6 @@ "Package": "XVector", "Version": "0.42.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "IRanges", @@ -1295,7 +1234,6 @@ "Package": "basilisk", "Version": "1.14.3", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "basilisk.utils", "dir.expiry", @@ -1310,7 +1248,6 @@ "Package": "basilisk.utils", "Version": "1.14.1", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "dir.expiry", "methods", @@ -1323,7 +1260,6 @@ "Package": "batchelor", "Version": "1.18.1", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "BiocNeighbors", @@ -1351,7 +1287,6 @@ "Package": "beachmat", "Version": "2.18.1", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "DelayedArray", @@ -1379,7 +1314,6 @@ "Package": "biomaRt", "Version": "2.58.2", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "AnnotationDbi", "BiocFileCache", @@ -1442,7 +1376,6 @@ "Package": "bluster", "Version": "1.12.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocNeighbors", "BiocParallel", @@ -1549,7 +1482,6 @@ "Package": "celldex", "Version": "1.12.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "AnnotationDbi", "AnnotationHub", @@ -1842,7 +1774,6 @@ "Package": "dir.expiry", "Version": "1.10.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "filelock", "utils" @@ -1932,7 +1863,6 @@ "Package": "edgeR", "Version": "4.0.16", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "R", "Rcpp", @@ -1949,7 +1879,6 @@ "Package": "eds", "Version": "1.4.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "Matrix", "Rcpp" @@ -1960,7 +1889,6 @@ "Package": "eisaR", "Version": "1.14.1", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "GenomicRanges", @@ -1992,7 +1920,6 @@ "Package": "ensembldb", "Version": "2.26.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "AnnotationDbi", "AnnotationFilter", @@ -2079,7 +2006,6 @@ "Package": "fishpond", "Version": "2.8.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "GenomicRanges", "IRanges", @@ -2512,7 +2438,6 @@ "Package": "graph", "Version": "1.80.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "R", @@ -2747,7 +2672,6 @@ "Package": "interactiveDisplayBase", "Version": "1.40.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "DT", @@ -2941,7 +2865,6 @@ "Package": "limma", "Version": "3.58.1", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "R", "grDevices", @@ -3053,7 +2976,6 @@ "Package": "metapod", "Version": "1.10.1", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "Rcpp" ], @@ -3080,7 +3002,6 @@ "Package": "miQC", "Version": "1.10.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "R", "SingleCellExperiment", @@ -3183,7 +3104,6 @@ "Package": "ontoProc", "Version": "1.24.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "AnnotationHub", "Biobase", @@ -3552,7 +3472,6 @@ "Package": "qvalue", "Version": "2.34.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "R", "ggplot2", @@ -3722,7 +3641,6 @@ "Package": "rhdf5", "Version": "2.46.1", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "R", "Rhdf5lib", @@ -3736,7 +3654,6 @@ "Package": "rhdf5filters", "Version": "1.14.1", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "Rhdf5lib" ], @@ -3818,7 +3735,6 @@ "Package": "rtracklayer", "Version": "1.62.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "BiocIO", @@ -3897,7 +3813,6 @@ "Package": "scater", "Version": "1.30.1", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "BiocNeighbors", @@ -3946,7 +3861,6 @@ "Package": "scran", "Version": "1.30.2", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BH", "BiocGenerics", @@ -4002,7 +3916,6 @@ "Package": "scuttle", "Version": "1.12.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "BiocParallel", @@ -4160,7 +4073,6 @@ "Package": "sparseMatrixStats", "Version": "1.14.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "Matrix", "MatrixGenerics", @@ -4562,7 +4474,6 @@ "Package": "tximport", "Version": "1.30.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "methods", "stats", @@ -4771,7 +4682,6 @@ "Package": "zellkonverter", "Version": "1.12.1", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "DelayedArray", "Matrix", @@ -4790,7 +4700,6 @@ "Package": "zlibbioc", "Version": "1.48.2", "Source": "Bioconductor", - "Repository": "RSPM", "Hash": "2344be62c2da4d9e9942b5d8db346e59" }, "zoo": { From 0070540342a3947360c88a5c1fe2fafbf965de36 Mon Sep 17 00:00:00 2001 From: Joshua Shapiro Date: Mon, 22 Apr 2024 12:13:23 -0400 Subject: [PATCH 17/28] Use bioconductor main for renvs --- docker/renv_seurat.lock | 33 ++++++++++++--------------------- docker/renv_slim.lock | 31 +++++++++++-------------------- docker/renv_zellkonverter.lock | 29 ++++++++++------------------- 3 files changed, 33 insertions(+), 60 deletions(-) diff --git a/docker/renv_seurat.lock b/docker/renv_seurat.lock index 3c98edfc..de63b1fb 100644 --- a/docker/renv_seurat.lock +++ b/docker/renv_seurat.lock @@ -4,23 +4,23 @@ "Repositories": [ { "Name": "BioCsoft", - "URL": "https://p3m.dev/bioconductor/packages/3.18/bioc" + "URL": "https://bioconductor.org/packages/3.18/bioc" }, { "Name": "BioCann", - "URL": "https://p3m.dev/bioconductor/packages/3.18/data/annotation" + "URL": "https://bioconductor.org/packages/3.18/data/annotation" }, { "Name": "BioCexp", - "URL": "https://p3m.dev/bioconductor/packages/3.18/data/experiment" + "URL": "https://bioconductor.org/packages/3.18/data/experiment" }, { "Name": "BioCworkflows", - "URL": "https://p3m.dev/bioconductor/packages/3.18/workflows" + "URL": "https://bioconductor.org/packages/3.18/workflows" }, { "Name": "BioCbooks", - "URL": "https://p3m.dev/bioconductor/packages/3.18/books" + "URL": "https://bioconductor.org/packages/3.18/books" }, { "Name": "CRAN", @@ -55,7 +55,6 @@ "Package": "BiocGenerics", "Version": "0.48.1", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "R", "graphics", @@ -79,7 +78,7 @@ "Package": "BiocNeighbors", "Version": "1.20.2", "Source": "Bioconductor", - "Repository": "RSPM", + "Repository": "Bioconductor 3.18", "Requirements": [ "BiocParallel", "Matrix", @@ -95,7 +94,6 @@ "Package": "BiocParallel", "Version": "1.36.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BH", "R", @@ -114,7 +112,7 @@ "Package": "BiocVersion", "Version": "3.18.1", "Source": "Bioconductor", - "Repository": "RSPM", + "Repository": "Bioconductor 3.18", "Requirements": [ "R" ], @@ -189,7 +187,7 @@ "Package": "GenomeInfoDb", "Version": "1.38.8", "Source": "Bioconductor", - "Repository": "RSPM", + "Repository": "Bioconductor 3.18", "Requirements": [ "BiocGenerics", "GenomeInfoDbData", @@ -208,7 +206,6 @@ "Package": "GenomeInfoDbData", "Version": "1.2.11", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "R" ], @@ -218,7 +215,6 @@ "Package": "GenomicRanges", "Version": "1.54.1", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "GenomeInfoDb", @@ -260,7 +256,6 @@ "Package": "IRanges", "Version": "2.36.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "R", @@ -440,7 +435,7 @@ "Package": "S4Vectors", "Version": "0.40.2", "Source": "Bioconductor", - "Repository": "RSPM", + "Repository": "Bioconductor 3.18", "Requirements": [ "BiocGenerics", "R", @@ -519,7 +514,6 @@ "Package": "XVector", "Version": "0.42.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "IRanges", @@ -570,7 +564,7 @@ "Package": "bluster", "Version": "1.12.0", "Source": "Bioconductor", - "Repository": "RSPM", + "Repository": "Bioconductor 3.18", "Requirements": [ "BiocNeighbors", "BiocParallel", @@ -729,7 +723,6 @@ "Package": "fishpond", "Version": "2.8.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "GenomicRanges", "IRanges", @@ -1071,7 +1064,6 @@ "Package": "miQC", "Version": "1.10.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "R", "SingleCellExperiment", @@ -1467,7 +1459,6 @@ "Package": "tximport", "Version": "1.30.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "methods", "stats", @@ -1492,7 +1483,7 @@ }, "uwot": { "Package": "uwot", - "Version": "0.2.1", + "Version": "0.2.2", "Source": "Repository" }, "vctrs": { @@ -1540,7 +1531,7 @@ "Package": "zlibbioc", "Version": "1.48.2", "Source": "Bioconductor", - "Repository": "RSPM", + "Repository": "Bioconductor 3.18", "Hash": "2344be62c2da4d9e9942b5d8db346e59" } } diff --git a/docker/renv_slim.lock b/docker/renv_slim.lock index fcbd83d9..7e6f6d91 100644 --- a/docker/renv_slim.lock +++ b/docker/renv_slim.lock @@ -4,23 +4,23 @@ "Repositories": [ { "Name": "BioCsoft", - "URL": "https://p3m.dev/bioconductor/packages/3.18/bioc" + "URL": "https://bioconductor.org/packages/3.18/bioc" }, { "Name": "BioCann", - "URL": "https://p3m.dev/bioconductor/packages/3.18/data/annotation" + "URL": "https://bioconductor.org/packages/3.18/data/annotation" }, { "Name": "BioCexp", - "URL": "https://p3m.dev/bioconductor/packages/3.18/data/experiment" + "URL": "https://bioconductor.org/packages/3.18/data/experiment" }, { "Name": "BioCworkflows", - "URL": "https://p3m.dev/bioconductor/packages/3.18/workflows" + "URL": "https://bioconductor.org/packages/3.18/workflows" }, { "Name": "BioCbooks", - "URL": "https://p3m.dev/bioconductor/packages/3.18/books" + "URL": "https://bioconductor.org/packages/3.18/books" }, { "Name": "CRAN", @@ -55,7 +55,6 @@ "Package": "BiocGenerics", "Version": "0.48.1", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "R", "graphics", @@ -79,7 +78,7 @@ "Package": "BiocNeighbors", "Version": "1.20.2", "Source": "Bioconductor", - "Repository": "RSPM", + "Repository": "Bioconductor 3.18", "Requirements": [ "BiocParallel", "Matrix", @@ -95,7 +94,6 @@ "Package": "BiocParallel", "Version": "1.36.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BH", "R", @@ -114,7 +112,7 @@ "Package": "BiocVersion", "Version": "3.18.1", "Source": "Bioconductor", - "Repository": "RSPM", + "Repository": "Bioconductor 3.18", "Requirements": [ "R" ], @@ -189,7 +187,7 @@ "Package": "GenomeInfoDb", "Version": "1.38.8", "Source": "Bioconductor", - "Repository": "RSPM", + "Repository": "Bioconductor 3.18", "Requirements": [ "BiocGenerics", "GenomeInfoDbData", @@ -208,7 +206,6 @@ "Package": "GenomeInfoDbData", "Version": "1.2.11", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "R" ], @@ -218,7 +215,6 @@ "Package": "GenomicRanges", "Version": "1.54.1", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "GenomeInfoDb", @@ -260,7 +256,6 @@ "Package": "IRanges", "Version": "2.36.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "R", @@ -439,7 +434,7 @@ "Package": "S4Vectors", "Version": "0.40.2", "Source": "Bioconductor", - "Repository": "RSPM", + "Repository": "Bioconductor 3.18", "Requirements": [ "BiocGenerics", "R", @@ -513,7 +508,6 @@ "Package": "XVector", "Version": "0.42.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "IRanges", @@ -564,7 +558,7 @@ "Package": "bluster", "Version": "1.12.0", "Source": "Bioconductor", - "Repository": "RSPM", + "Repository": "Bioconductor 3.18", "Requirements": [ "BiocNeighbors", "BiocParallel", @@ -722,7 +716,6 @@ "Package": "fishpond", "Version": "2.8.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "GenomicRanges", "IRanges", @@ -1036,7 +1029,6 @@ "Package": "miQC", "Version": "1.10.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "R", "SingleCellExperiment", @@ -1377,7 +1369,6 @@ "Package": "tximport", "Version": "1.30.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "methods", "stats", @@ -1440,7 +1431,7 @@ "Package": "zlibbioc", "Version": "1.48.2", "Source": "Bioconductor", - "Repository": "RSPM", + "Repository": "Bioconductor 3.18", "Hash": "2344be62c2da4d9e9942b5d8db346e59" } } diff --git a/docker/renv_zellkonverter.lock b/docker/renv_zellkonverter.lock index 4a565c79..dad50a86 100644 --- a/docker/renv_zellkonverter.lock +++ b/docker/renv_zellkonverter.lock @@ -4,23 +4,23 @@ "Repositories": [ { "Name": "BioCsoft", - "URL": "https://p3m.dev/bioconductor/packages/3.18/bioc" + "URL": "https://bioconductor.org/packages/3.18/bioc" }, { "Name": "BioCann", - "URL": "https://p3m.dev/bioconductor/packages/3.18/data/annotation" + "URL": "https://bioconductor.org/packages/3.18/data/annotation" }, { "Name": "BioCexp", - "URL": "https://p3m.dev/bioconductor/packages/3.18/data/experiment" + "URL": "https://bioconductor.org/packages/3.18/data/experiment" }, { "Name": "BioCworkflows", - "URL": "https://p3m.dev/bioconductor/packages/3.18/workflows" + "URL": "https://bioconductor.org/packages/3.18/workflows" }, { "Name": "BioCbooks", - "URL": "https://p3m.dev/bioconductor/packages/3.18/books" + "URL": "https://bioconductor.org/packages/3.18/books" }, { "Name": "CRAN", @@ -55,7 +55,6 @@ "Package": "BiocGenerics", "Version": "0.48.1", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "R", "graphics", @@ -79,7 +78,7 @@ "Package": "BiocNeighbors", "Version": "1.20.2", "Source": "Bioconductor", - "Repository": "RSPM", + "Repository": "Bioconductor 3.18", "Requirements": [ "BiocParallel", "Matrix", @@ -95,7 +94,6 @@ "Package": "BiocParallel", "Version": "1.36.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BH", "R", @@ -114,7 +112,7 @@ "Package": "BiocVersion", "Version": "3.18.1", "Source": "Bioconductor", - "Repository": "RSPM", + "Repository": "Bioconductor 3.18", "Requirements": [ "R" ], @@ -175,7 +173,7 @@ "Package": "GenomeInfoDb", "Version": "1.38.8", "Source": "Bioconductor", - "Repository": "RSPM", + "Repository": "Bioconductor 3.18", "Requirements": [ "BiocGenerics", "GenomeInfoDbData", @@ -194,7 +192,6 @@ "Package": "GenomeInfoDbData", "Version": "1.2.11", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "R" ], @@ -204,7 +201,6 @@ "Package": "GenomicRanges", "Version": "1.54.1", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "GenomeInfoDb", @@ -246,7 +242,6 @@ "Package": "IRanges", "Version": "2.36.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "R", @@ -448,7 +443,6 @@ "Package": "XVector", "Version": "0.42.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "BiocGenerics", "IRanges", @@ -504,7 +498,7 @@ "Package": "bluster", "Version": "1.12.0", "Source": "Bioconductor", - "Repository": "RSPM", + "Repository": "Bioconductor 3.18", "Requirements": [ "BiocNeighbors", "BiocParallel", @@ -662,7 +656,6 @@ "Package": "fishpond", "Version": "2.8.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "GenomicRanges", "IRanges", @@ -981,7 +974,6 @@ "Package": "miQC", "Version": "1.10.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "R", "SingleCellExperiment", @@ -1327,7 +1319,6 @@ "Package": "tximport", "Version": "1.30.0", "Source": "Bioconductor", - "Repository": "RSPM", "Requirements": [ "methods", "stats", @@ -1395,7 +1386,7 @@ "Package": "zlibbioc", "Version": "1.48.2", "Source": "Bioconductor", - "Repository": "RSPM", + "Repository": "Bioconductor 3.18", "Hash": "2344be62c2da4d9e9942b5d8db346e59" } } From c880e71c54f9534f5df5e346ce79b8b4de616339 Mon Sep 17 00:00:00 2001 From: Joshua Shapiro Date: Mon, 22 Apr 2024 13:05:10 -0400 Subject: [PATCH 18/28] Add status check --- docker/scripts/make-lockfile.R | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docker/scripts/make-lockfile.R b/docker/scripts/make-lockfile.R index 087202e9..90e34e9c 100644 --- a/docker/scripts/make-lockfile.R +++ b/docker/scripts/make-lockfile.R @@ -33,6 +33,14 @@ setwd(here::here()) source(".Rprofile") setwd(current_dir) +# Check that lockfile is up to date with currently installed packages +if (!renv::status()$synchronized) { + stop(paste( + "renv.lock file does not match installed packages.", + "Please run `renv::restore()` or `renv::snapshot()` from within R before running this script." + )) +} + # get dependencies of scpcaTools renv::snapshot(lockfile = opts$lockfile, type = "explicit") From dfb84145c9f60fa84a581241af33f206b42d6fd0 Mon Sep 17 00:00:00 2001 From: Joshua Shapiro Date: Tue, 23 Apr 2024 09:10:25 -0400 Subject: [PATCH 19/28] update pre-commit --- .pre-commit-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 9fbd9a65..50b87eaa 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -2,7 +2,7 @@ # R specific hooks: https://github.com/lorenzwalthert/precommit repos: - repo: https://github.com/lorenzwalthert/precommit - rev: v0.3.2.9027 + rev: v0.4.2 hooks: - id: style-files args: [--style_pkg=styler, --style_fun=tidyverse_style] @@ -50,7 +50,7 @@ repos: - id: deps-in-desc exclude: docker/.* - repo: https://github.com/pre-commit/pre-commit-hooks - rev: v4.5.0 + rev: v4.6.0 hooks: - id: check-added-large-files args: ["--maxkb=200"] From 29b9e515d53ad540ada54e1e1ffb0d5005d05360 Mon Sep 17 00:00:00 2001 From: Joshua Shapiro Date: Tue, 23 Apr 2024 10:09:50 -0400 Subject: [PATCH 20/28] Different repo names --- .github/workflows/build-docker.yaml | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/.github/workflows/build-docker.yaml b/.github/workflows/build-docker.yaml index e1ac8080..dc80e829 100644 --- a/.github/workflows/build-docker.yaml +++ b/.github/workflows/build-docker.yaml @@ -12,7 +12,7 @@ on: env: REGISTRY: ghcr.io - IMAGE_NAME: alexslemonade/scpcatools + REGISTRY_USER: alexslemonade jobs: build_and_push: @@ -24,10 +24,10 @@ jobs: fail-fast: false matrix: include: - - dockerfile: Dockerfile - suffix: "" - - dockerfile: scpcatools_slim.Dockerfile - suffix: "-slim" + - image_name: scpcatools + dockerfile: Dockerfile + - image_name: scpcatools-slim + dockerfile: scpcatools_slim.Dockerfile steps: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 @@ -43,8 +43,7 @@ jobs: id: meta uses: docker/metadata-action@v5 with: - images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }} - flavor: suffix=${{ matrix.suffix }},onlatest=true + images: ${{ env.REGISTRY }}/${{ env.REGISTRY_USER }}/${{ matrix.image_name }} tags: | type=semver,pattern={{raw}} type=edge,branch=main From f6072a1cc624616eb52e5efacc63570bb3accc7f Mon Sep 17 00:00:00 2001 From: Joshua Shapiro Date: Tue, 23 Apr 2024 10:12:37 -0400 Subject: [PATCH 21/28] add scvi reqs --- docker/make-requirements.sh | 3 ++ docker/renv_seurat.lock | 2 +- docker/renv_zellkonverter.lock | 2 +- docker/requirements_scvi.in | 4 ++ docker/requirements_scvi.txt | 96 ++++++++++++++++++++++++++++++++++ 5 files changed, 105 insertions(+), 2 deletions(-) create mode 100644 docker/requirements_scvi.in create mode 100644 docker/requirements_scvi.txt diff --git a/docker/make-requirements.sh b/docker/make-requirements.sh index b6f2ce3f..023bcbc5 100644 --- a/docker/make-requirements.sh +++ b/docker/make-requirements.sh @@ -2,6 +2,8 @@ set -euo pipefail # This script is used to generate requirements files for R and Python packages # Requires that the `pip-tools` python package is installed. +# Before running, make sure that the renv.lock file and installed libaries are +# consistent with renv::snapshot() or renv::restore() # Set the working directory to the directory of this file cd "$(dirname "${BASH_SOURCE[0]}")" @@ -9,6 +11,7 @@ cd "$(dirname "${BASH_SOURCE[0]}")" # Python package lists pip-compile --no-annotate --strip-extras --output-file=requirements.txt requirements.in pip-compile --no-annotate --strip-extras --output-file=requirements_anndata.txt requirements_anndata.in +pip-compile --no-annotate --strip-extras --output-file=requirements_scvi.txt requirements_scvi.in # slim lockfile Rscript scripts/make-lockfile.R -f renv_slim.lock diff --git a/docker/renv_seurat.lock b/docker/renv_seurat.lock index de63b1fb..3a0f0770 100644 --- a/docker/renv_seurat.lock +++ b/docker/renv_seurat.lock @@ -1246,7 +1246,7 @@ }, "reticulate": { "Package": "reticulate", - "Version": "1.36.0", + "Version": "1.36.1", "Source": "Repository" }, "rhdf5": { diff --git a/docker/renv_zellkonverter.lock b/docker/renv_zellkonverter.lock index dad50a86..20f766f7 100644 --- a/docker/renv_zellkonverter.lock +++ b/docker/renv_zellkonverter.lock @@ -1126,7 +1126,7 @@ }, "reticulate": { "Package": "reticulate", - "Version": "1.36.0", + "Version": "1.36.1", "Source": "Repository" }, "rhdf5": { diff --git a/docker/requirements_scvi.in b/docker/requirements_scvi.in new file mode 100644 index 00000000..47067d40 --- /dev/null +++ b/docker/requirements_scvi.in @@ -0,0 +1,4 @@ +# requirements.in packages for scvi-based analysis +anndata~=0.10 +scanpy~=1.10 +scvi-tools~=1.1 diff --git a/docker/requirements_scvi.txt b/docker/requirements_scvi.txt new file mode 100644 index 00000000..cb1359cb --- /dev/null +++ b/docker/requirements_scvi.txt @@ -0,0 +1,96 @@ +# +# This file is autogenerated by pip-compile with Python 3.10 +# by the following command: +# +# pip-compile --no-annotate --output-file=requirements_scvi.txt --strip-extras requirements_scvi.in +# +absl-py==2.1.0 +aiohttp==3.9.5 +aiosignal==1.3.1 +anndata==0.10.7 +array-api-compat==1.6 +async-timeout==4.0.3 +attrs==23.2.0 +chex==0.1.86 +contextlib2==21.6.0 +contourpy==1.2.1 +cycler==0.12.1 +docrep==0.3.2 +etils==1.7.0 +exceptiongroup==1.2.1 +filelock==3.13.4 +flax==0.8.2 +fonttools==4.51.0 +frozenlist==1.4.1 +fsspec==2024.3.1 +h5py==3.11.0 +idna==3.7 +importlib-resources==6.4.0 +jax==0.4.26 +jaxlib==0.4.26 +jinja2==3.1.3 +joblib==1.4.0 +kiwisolver==1.4.5 +legacy-api-wrap==1.4 +lightning==2.1.4 +lightning-utilities==0.11.2 +llvmlite==0.42.0 +markdown-it-py==3.0.0 +markupsafe==2.1.5 +matplotlib==3.8.4 +mdurl==0.1.2 +ml-collections==0.1.1 +ml-dtypes==0.4.0 +mpmath==1.3.0 +msgpack==1.0.8 +mudata==0.2.3 +multidict==6.0.5 +multipledispatch==1.0.0 +natsort==8.4.0 +nest-asyncio==1.6.0 +networkx==3.3 +numba==0.59.1 +numpy==1.26.4 +numpyro==0.14.0 +opt-einsum==3.3.0 +optax==0.2.2 +orbax-checkpoint==0.5.10 +packaging==24.0 +pandas==2.2.2 +patsy==0.5.6 +pillow==10.3.0 +protobuf==5.26.1 +pygments==2.17.2 +pynndescent==0.5.12 +pyparsing==3.1.2 +pyro-api==0.1.2 +pyro-ppl==1.9.0 +python-dateutil==2.9.0.post0 +pytorch-lightning==2.2.2 +pytz==2024.1 +pyyaml==6.0.1 +rich==13.7.1 +scanpy==1.10.1 +scikit-learn==1.4.2 +scipy==1.13.0 +scvi-tools==1.1.2 +seaborn==0.13.2 +session-info==1.0.0 +six==1.16.0 +statsmodels==0.14.2 +stdlib-list==0.10.0 +sympy==1.12 +tensorstore==0.1.56 +threadpoolctl==3.4.0 +toolz==0.12.1 +torch==2.2.2 +torchmetrics==1.3.2 +tqdm==4.66.2 +typing-extensions==4.11.0 +tzdata==2024.1 +umap-learn==0.5.6 +yarl==1.9.4 +zipp==3.18.1 + +# The following packages are considered to be unsafe in a requirements file: +# setuptools From 680f6a8c5bc55d9c2ac180d2e486d1befbf07e57 Mon Sep 17 00:00:00 2001 From: Joshua Shapiro Date: Tue, 23 Apr 2024 12:13:48 -0400 Subject: [PATCH 22/28] Add more dockerfiles and always include optparse --- docker/make-requirements.sh | 3 + docker/renv_reports.lock | 1478 ++++++++++++++++++++++++++ docker/renv_seurat.lock | 5 + docker/renv_slim.lock | 10 + docker/renv_zellkonverter.lock | 5 + docker/scpcatools_reports.Dockerfile | 27 + docker/scpcatools_scvi.Dockerfile | 36 + docker/scpcatools_seurat.Dockerfile | 27 + docker/scripts/make-lockfile.R | 2 +- 9 files changed, 1592 insertions(+), 1 deletion(-) create mode 100644 docker/renv_reports.lock create mode 100644 docker/scpcatools_reports.Dockerfile create mode 100644 docker/scpcatools_scvi.Dockerfile create mode 100644 docker/scpcatools_seurat.Dockerfile diff --git a/docker/make-requirements.sh b/docker/make-requirements.sh index 023bcbc5..5085d8a9 100644 --- a/docker/make-requirements.sh +++ b/docker/make-requirements.sh @@ -16,6 +16,9 @@ pip-compile --no-annotate --strip-extras --output-file=requirements_scvi.txt req # slim lockfile Rscript scripts/make-lockfile.R -f renv_slim.lock +# reports lockfile +Rscript scripts/make-lockfile.R -f renv_reports.lock -p ComplexHeatmap,ggforce,kableExtra,rmarkdown + # zellkonverter lockfile Rscript scripts/make-lockfile.R -f renv_zellkonverter.lock -p zellkonverter diff --git a/docker/renv_reports.lock b/docker/renv_reports.lock new file mode 100644 index 00000000..b59e36d7 --- /dev/null +++ b/docker/renv_reports.lock @@ -0,0 +1,1478 @@ +{ + "R": { + "Version": "4.3.3", + "Repositories": [ + { + "Name": "BioCsoft", + "URL": "https://bioconductor.org/packages/3.18/bioc" + }, + { + "Name": "BioCann", + "URL": "https://bioconductor.org/packages/3.18/data/annotation" + }, + { + "Name": "BioCexp", + "URL": "https://bioconductor.org/packages/3.18/data/experiment" + }, + { + "Name": "BioCworkflows", + "URL": "https://bioconductor.org/packages/3.18/workflows" + }, + { + "Name": "BioCbooks", + "URL": "https://bioconductor.org/packages/3.18/books" + }, + { + "Name": "CRAN", + "URL": "https://p3m.dev/cran/latest" + } + ] + }, + "Bioconductor": { + "Version": "3.18" + }, + "Packages": { + "BH": { + "Package": "BH", + "Version": "1.84.0-0", + "Source": "Repository", + "Repository": "RSPM", + "Hash": "a8235afbcd6316e6e91433ea47661013" + }, + "Biobase": { + "Package": "Biobase", + "Version": "2.62.0", + "Source": "Bioconductor", + "Requirements": [ + "BiocGenerics", + "R", + "methods", + "utils" + ], + "Hash": "38252a34e82d3ff6bb46b4e2252d2dce" + }, + "BiocGenerics": { + "Package": "BiocGenerics", + "Version": "0.48.1", + "Source": "Bioconductor", + "Requirements": [ + "R", + "graphics", + "methods", + "stats", + "utils" + ], + "Hash": "e34278c65d7dffcc08f737bf0944ca9a" + }, + "BiocManager": { + "Package": "BiocManager", + "Version": "1.30.22", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "utils" + ], + "Hash": "d57e43105a1aa9cb54fdb4629725acb1" + }, + "BiocNeighbors": { + "Package": "BiocNeighbors", + "Version": "1.20.2", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "BiocParallel", + "Matrix", + "Rcpp", + "RcppHNSW", + "S4Vectors", + "methods", + "stats" + ], + "Hash": "c5c8ade5852fd3b25c66ec28873d00f1" + }, + "BiocParallel": { + "Package": "BiocParallel", + "Version": "1.36.0", + "Source": "Bioconductor", + "Requirements": [ + "BH", + "R", + "codetools", + "cpp11", + "futile.logger", + "methods", + "parallel", + "snow", + "stats", + "utils" + ], + "Hash": "6d1689ee8b65614ba6ef4012a67b663a" + }, + "BiocVersion": { + "Package": "BiocVersion", + "Version": "3.18.1", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "R" + ], + "Hash": "2ecaed86684f5fae76ed5530f9d29c4a" + }, + "DelayedArray": { + "Package": "DelayedArray", + "Version": "0.28.0", + "Source": "Bioconductor", + "Requirements": [ + "BiocGenerics", + "IRanges", + "Matrix", + "MatrixGenerics", + "R", + "S4Arrays", + "S4Vectors", + "SparseArray", + "methods", + "stats", + "stats4" + ], + "Hash": "0e5c84e543a3d04ce64c6f60ed46d7eb" + }, + "DelayedMatrixStats": { + "Package": "DelayedMatrixStats", + "Version": "1.24.0", + "Source": "Bioconductor", + "Requirements": [ + "DelayedArray", + "IRanges", + "Matrix", + "MatrixGenerics", + "S4Vectors", + "methods", + "sparseMatrixStats" + ], + "Hash": "71c2d178d33f9d91999f67dc2d53b747" + }, + "DropletUtils": { + "Package": "DropletUtils", + "Version": "1.22.0", + "Source": "Bioconductor", + "Requirements": [ + "BH", + "BiocGenerics", + "BiocParallel", + "DelayedArray", + "DelayedMatrixStats", + "GenomicRanges", + "HDF5Array", + "IRanges", + "Matrix", + "R.utils", + "Rcpp", + "Rhdf5lib", + "S4Vectors", + "SingleCellExperiment", + "SummarizedExperiment", + "beachmat", + "dqrng", + "edgeR", + "methods", + "rhdf5", + "scuttle", + "stats", + "utils" + ], + "Hash": "be3893d30c97591f1d3ec6f053830c3a" + }, + "GenomeInfoDb": { + "Package": "GenomeInfoDb", + "Version": "1.38.8", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "BiocGenerics", + "GenomeInfoDbData", + "IRanges", + "R", + "RCurl", + "S4Vectors", + "methods", + "stats", + "stats4", + "utils" + ], + "Hash": "155053909d2831bfac154a1118151d6b" + }, + "GenomeInfoDbData": { + "Package": "GenomeInfoDbData", + "Version": "1.2.11", + "Source": "Bioconductor", + "Requirements": [ + "R" + ], + "Hash": "10f32956181d1d46bd8402c93ac193e8" + }, + "GenomicRanges": { + "Package": "GenomicRanges", + "Version": "1.54.1", + "Source": "Bioconductor", + "Requirements": [ + "BiocGenerics", + "GenomeInfoDb", + "IRanges", + "R", + "S4Vectors", + "XVector", + "methods", + "stats", + "stats4", + "utils" + ], + "Hash": "7e0c1399af35369312d9c399454374e8" + }, + "GetoptLong": { + "Package": "GetoptLong", + "Version": "1.0.5", + "Source": "Repository" + }, + "GlobalOptions": { + "Package": "GlobalOptions", + "Version": "0.1.2", + "Source": "Repository" + }, + "HDF5Array": { + "Package": "HDF5Array", + "Version": "1.30.1", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "BiocGenerics", + "DelayedArray", + "IRanges", + "Matrix", + "R", + "Rhdf5lib", + "S4Arrays", + "S4Vectors", + "methods", + "rhdf5", + "rhdf5filters", + "stats", + "tools", + "utils" + ], + "Hash": "9b8deb4fd34fa439c16c829457d1968f" + }, + "IRanges": { + "Package": "IRanges", + "Version": "2.36.0", + "Source": "Repository" + }, + "MASS": { + "Package": "MASS", + "Version": "7.3-60.0.1", + "Source": "Repository" + }, + "Matrix": { + "Package": "Matrix", + "Version": "1.6-5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "grDevices", + "graphics", + "grid", + "lattice", + "methods", + "stats", + "utils" + ], + "Hash": "8c7115cd3a0e048bda2a7cd110549f7a" + }, + "MatrixGenerics": { + "Package": "MatrixGenerics", + "Version": "1.14.0", + "Source": "Bioconductor", + "Requirements": [ + "matrixStats", + "methods" + ], + "Hash": "088cd2077b5619fcb7b373b1a45174e7" + }, + "R.methodsS3": { + "Package": "R.methodsS3", + "Version": "1.8.2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "utils" + ], + "Hash": "278c286fd6e9e75d0c2e8f731ea445c8" + }, + "R.oo": { + "Package": "R.oo", + "Version": "1.26.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "R.methodsS3", + "methods", + "utils" + ], + "Hash": "4fed809e53ddb5407b3da3d0f572e591" + }, + "R.utils": { + "Package": "R.utils", + "Version": "2.12.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "R.methodsS3", + "R.oo", + "methods", + "tools", + "utils" + ], + "Hash": "3dc2829b790254bfba21e60965787651" + }, + "R6": { + "Package": "R6", + "Version": "2.5.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "470851b6d5d0ac559e9d01bb352b4021" + }, + "RColorBrewer": { + "Package": "RColorBrewer", + "Version": "1.1-3", + "Source": "Repository" + }, + "RCurl": { + "Package": "RCurl", + "Version": "1.98-1.14", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "bitops", + "methods" + ], + "Hash": "47f648d288079d0c696804ad4e55197e" + }, + "Rcpp": { + "Package": "Rcpp", + "Version": "1.0.12", + "Source": "Repository" + }, + "RcppEigen": { + "Package": "RcppEigen", + "Version": "0.3.4.0.0", + "Source": "Repository" + }, + "RcppHNSW": { + "Package": "RcppHNSW", + "Version": "0.6.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "Rcpp", + "methods" + ], + "Hash": "1f2dc32c27746a35196aaf95adb357be" + }, + "Rhdf5lib": { + "Package": "Rhdf5lib", + "Version": "1.24.2", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "R" + ], + "Hash": "3cf103db29d75af0221d71946509a30c" + }, + "S4Arrays": { + "Package": "S4Arrays", + "Version": "1.2.1", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "BiocGenerics", + "IRanges", + "Matrix", + "R", + "S4Vectors", + "abind", + "crayon", + "methods", + "stats" + ], + "Hash": "3213a9826adb8f48e51af1e7b30fa568" + }, + "S4Vectors": { + "Package": "S4Vectors", + "Version": "0.40.2", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "BiocGenerics", + "R", + "methods", + "stats", + "stats4", + "utils" + ], + "Hash": "1716e201f81ced0f456dd5ec85fe20f8" + }, + "SingleCellExperiment": { + "Package": "SingleCellExperiment", + "Version": "1.24.0", + "Source": "Bioconductor", + "Requirements": [ + "BiocGenerics", + "DelayedArray", + "GenomicRanges", + "S4Vectors", + "SummarizedExperiment", + "methods", + "stats", + "utils" + ], + "Hash": "e21b3571ce76eb4dfe6bf7900960aa6a" + }, + "SparseArray": { + "Package": "SparseArray", + "Version": "1.2.4", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "BiocGenerics", + "IRanges", + "Matrix", + "MatrixGenerics", + "R", + "S4Arrays", + "S4Vectors", + "XVector", + "matrixStats", + "methods", + "stats" + ], + "Hash": "391092e7b81373ab624bd6471cebccd4" + }, + "SummarizedExperiment": { + "Package": "SummarizedExperiment", + "Version": "1.32.0", + "Source": "Bioconductor", + "Requirements": [ + "Biobase", + "BiocGenerics", + "DelayedArray", + "GenomeInfoDb", + "GenomicRanges", + "IRanges", + "Matrix", + "MatrixGenerics", + "R", + "S4Arrays", + "S4Vectors", + "methods", + "stats", + "tools", + "utils" + ], + "Hash": "caee529bf9710ff6fe1776612fcaa266" + }, + "XVector": { + "Package": "XVector", + "Version": "0.42.0", + "Source": "Bioconductor", + "Requirements": [ + "BiocGenerics", + "IRanges", + "R", + "S4Vectors", + "methods", + "tools", + "utils", + "zlibbioc" + ], + "Hash": "65c0b6bca03f88758f86ef0aa18c4873" + }, + "abind": { + "Package": "abind", + "Version": "1.4-5", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "methods", + "utils" + ], + "Hash": "4f57884290cc75ab22f4af9e9d4ca862" + }, + "beachmat": { + "Package": "beachmat", + "Version": "2.18.1", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "BiocGenerics", + "DelayedArray", + "Matrix", + "Rcpp", + "SparseArray", + "methods" + ], + "Hash": "c1c423ca7149d9e7f55d1e609342c2bd" + }, + "bitops": { + "Package": "bitops", + "Version": "1.0-7", + "Source": "Repository", + "Repository": "RSPM", + "Hash": "b7d8d8ee39869c18d8846a184dd8a1af" + }, + "bluster": { + "Package": "bluster", + "Version": "1.12.0", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "BiocNeighbors", + "BiocParallel", + "Matrix", + "Rcpp", + "S4Vectors", + "cluster", + "igraph", + "methods", + "stats", + "utils" + ], + "Hash": "fca0d5ffad6380f13cad4d7855107aef" + }, + "broom": { + "Package": "broom", + "Version": "1.0.5", + "Source": "Repository" + }, + "bslib": { + "Package": "bslib", + "Version": "0.7.0", + "Source": "Repository" + }, + "circlize": { + "Package": "circlize", + "Version": "0.4.16", + "Source": "Repository" + }, + "cli": { + "Package": "cli", + "Version": "3.6.2", + "Source": "Repository" + }, + "clue": { + "Package": "clue", + "Version": "0.3-65", + "Source": "Repository" + }, + "cluster": { + "Package": "cluster", + "Version": "2.1.6", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "grDevices", + "graphics", + "stats", + "utils" + ], + "Hash": "0aaa05204035dc43ea0004b9c76611dd" + }, + "codetools": { + "Package": "codetools", + "Version": "0.2-20", + "Source": "Repository" + }, + "colorspace": { + "Package": "colorspace", + "Version": "2.1-0", + "Source": "Repository" + }, + "conflicted": { + "Package": "conflicted", + "Version": "1.2.0", + "Source": "Repository" + }, + "cpp11": { + "Package": "cpp11", + "Version": "0.4.7", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "5a295d7d963cc5035284dcdbaf334f4e" + }, + "crayon": { + "Package": "crayon", + "Version": "1.5.2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "grDevices", + "methods", + "utils" + ], + "Hash": "e8a1e41acf02548751f45c718d55aa6a" + }, + "dbplyr": { + "Package": "dbplyr", + "Version": "2.5.0", + "Source": "Repository" + }, + "digest": { + "Package": "digest", + "Version": "0.6.35", + "Source": "Repository" + }, + "doParallel": { + "Package": "doParallel", + "Version": "1.0.17", + "Source": "Repository" + }, + "dplyr": { + "Package": "dplyr", + "Version": "1.1.4", + "Source": "Repository" + }, + "dqrng": { + "Package": "dqrng", + "Version": "0.3.2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "BH", + "R", + "Rcpp", + "sitmo" + ], + "Hash": "824df2aeba88d701df5e79018b35b815" + }, + "dtplyr": { + "Package": "dtplyr", + "Version": "1.3.1", + "Source": "Repository" + }, + "edgeR": { + "Package": "edgeR", + "Version": "4.0.16", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "R", + "Rcpp", + "graphics", + "limma", + "locfit", + "methods", + "stats", + "utils" + ], + "Hash": "a0405c7890708dcb53809d46758800f4" + }, + "evaluate": { + "Package": "evaluate", + "Version": "0.23", + "Source": "Repository" + }, + "fansi": { + "Package": "fansi", + "Version": "1.0.6", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "grDevices", + "utils" + ], + "Hash": "962174cf2aeb5b9eea581522286a911f" + }, + "farver": { + "Package": "farver", + "Version": "2.1.1", + "Source": "Repository", + "Repository": "RSPM", + "Hash": "8106d78941f34855c440ddb946b8f7a5" + }, + "fishpond": { + "Package": "fishpond", + "Version": "2.8.0", + "Source": "Bioconductor", + "Requirements": [ + "GenomicRanges", + "IRanges", + "Matrix", + "S4Vectors", + "SingleCellExperiment", + "SummarizedExperiment", + "abind", + "graphics", + "gtools", + "jsonlite", + "matrixStats", + "methods", + "qvalue", + "stats", + "svMisc", + "utils" + ], + "Hash": "60ebe3366ccb6c1a11a99682f56f2a2f" + }, + "flexmix": { + "Package": "flexmix", + "Version": "2.3-19", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "grDevices", + "graphics", + "grid", + "lattice", + "methods", + "modeltools", + "nnet", + "stats", + "stats4", + "utils" + ], + "Hash": "0cb3c4b251c2d3fd5923d3e7e6021ee2" + }, + "fontawesome": { + "Package": "fontawesome", + "Version": "0.5.2", + "Source": "Repository" + }, + "forcats": { + "Package": "forcats", + "Version": "1.0.0", + "Source": "Repository" + }, + "foreach": { + "Package": "foreach", + "Version": "1.5.2", + "Source": "Repository" + }, + "formatR": { + "Package": "formatR", + "Version": "1.14", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "63cb26d12517c7863f5abb006c5e0f25" + }, + "futile.logger": { + "Package": "futile.logger", + "Version": "1.4.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "futile.options", + "lambda.r", + "utils" + ], + "Hash": "99f0ace8c05ec7d3683d27083c4f1e7e" + }, + "futile.options": { + "Package": "futile.options", + "Version": "1.0.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "0d9bf02413ddc2bbe8da9ce369dcdd2b" + }, + "generics": { + "Package": "generics", + "Version": "0.1.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "methods" + ], + "Hash": "15e9634c0fcd294799e9b2e929ed1b86" + }, + "getopt": { + "Package": "getopt", + "Version": "1.20.4", + "Source": "Repository" + }, + "ggplot2": { + "Package": "ggplot2", + "Version": "3.5.0", + "Source": "Repository" + }, + "glue": { + "Package": "glue", + "Version": "1.7.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "methods" + ], + "Hash": "e0b3a53876554bd45879e596cdb10a52" + }, + "googledrive": { + "Package": "googledrive", + "Version": "2.1.1", + "Source": "Repository" + }, + "googlesheets4": { + "Package": "googlesheets4", + "Version": "1.1.1", + "Source": "Repository" + }, + "grDevices": { + "Package": "grDevices", + "Version": "4.3.3", + "Source": "R" + }, + "graphics": { + "Package": "graphics", + "Version": "4.3.3", + "Source": "R" + }, + "grid": { + "Package": "grid", + "Version": "4.3.3", + "Source": "R" + }, + "gtable": { + "Package": "gtable", + "Version": "0.3.5", + "Source": "Repository" + }, + "gtools": { + "Package": "gtools", + "Version": "3.9.5", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "methods", + "stats", + "utils" + ], + "Hash": "588d091c35389f1f4a9d533c8d709b35" + }, + "haven": { + "Package": "haven", + "Version": "2.5.4", + "Source": "Repository" + }, + "hms": { + "Package": "hms", + "Version": "1.1.3", + "Source": "Repository" + }, + "htmltools": { + "Package": "htmltools", + "Version": "0.5.8.1", + "Source": "Repository" + }, + "httr": { + "Package": "httr", + "Version": "1.4.7", + "Source": "Repository" + }, + "igraph": { + "Package": "igraph", + "Version": "2.0.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "Matrix", + "R", + "cli", + "cpp11", + "grDevices", + "graphics", + "lifecycle", + "magrittr", + "methods", + "pkgconfig", + "rlang", + "stats", + "utils", + "vctrs" + ], + "Hash": "c3b7d801d722e26e4cd888e042bf9af5" + }, + "isoband": { + "Package": "isoband", + "Version": "0.2.7", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "grid", + "utils" + ], + "Hash": "0080607b4a1a7b28979aecef976d8bc2" + }, + "jquerylib": { + "Package": "jquerylib", + "Version": "0.1.4", + "Source": "Repository" + }, + "jsonlite": { + "Package": "jsonlite", + "Version": "1.8.8", + "Source": "Repository" + }, + "knitr": { + "Package": "knitr", + "Version": "1.46", + "Source": "Repository" + }, + "labeling": { + "Package": "labeling", + "Version": "0.4.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "graphics", + "stats" + ], + "Hash": "b64ec208ac5bc1852b285f665d6368b3" + }, + "lambda.r": { + "Package": "lambda.r", + "Version": "1.2.4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "formatR" + ], + "Hash": "b1e925c4b9ffeb901bacf812cbe9a6ad" + }, + "lattice": { + "Package": "lattice", + "Version": "0.22-6", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "grDevices", + "graphics", + "grid", + "stats", + "utils" + ], + "Hash": "cc5ac1ba4c238c7ca9fa6a87ca11a7e2" + }, + "lifecycle": { + "Package": "lifecycle", + "Version": "1.0.4", + "Source": "Repository" + }, + "limma": { + "Package": "limma", + "Version": "3.58.1", + "Source": "Bioconductor", + "Requirements": [ + "R", + "grDevices", + "graphics", + "methods", + "statmod", + "stats", + "utils" + ], + "Hash": "74c3b64358e0be7edc3ecd130816dd3f" + }, + "locfit": { + "Package": "locfit", + "Version": "1.5-9.9", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "lattice" + ], + "Hash": "3885127e04b35dafded049075057ad83" + }, + "lubridate": { + "Package": "lubridate", + "Version": "1.9.3", + "Source": "Repository" + }, + "magrittr": { + "Package": "magrittr", + "Version": "2.0.3", + "Source": "Repository" + }, + "matrixStats": { + "Package": "matrixStats", + "Version": "1.3.0", + "Source": "Repository" + }, + "methods": { + "Package": "methods", + "Version": "4.3.3", + "Source": "R" + }, + "mgcv": { + "Package": "mgcv", + "Version": "1.9-1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "Matrix", + "R", + "graphics", + "methods", + "nlme", + "splines", + "stats", + "utils" + ], + "Hash": "110ee9d83b496279960e162ac97764ce" + }, + "miQC": { + "Package": "miQC", + "Version": "1.10.0", + "Source": "Bioconductor", + "Requirements": [ + "R", + "SingleCellExperiment", + "flexmix", + "ggplot2", + "splines" + ], + "Hash": "5d3660451d88509307ce0b0e48748109" + }, + "modelr": { + "Package": "modelr", + "Version": "0.1.11", + "Source": "Repository" + }, + "modeltools": { + "Package": "modeltools", + "Version": "0.2-23", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "methods", + "stats", + "stats4" + ], + "Hash": "f5a957c02222589bdf625a67be68b2a9" + }, + "munsell": { + "Package": "munsell", + "Version": "0.5.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "colorspace", + "methods" + ], + "Hash": "4fd8900853b746af55b81fda99da7695" + }, + "nlme": { + "Package": "nlme", + "Version": "3.1-164", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "graphics", + "lattice", + "stats", + "utils" + ], + "Hash": "a623a2239e642806158bc4dc3f51565d" + }, + "nnet": { + "Package": "nnet", + "Version": "7.3-19", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "stats", + "utils" + ], + "Hash": "2c797b46eea7fb58ede195bc0b1f1138" + }, + "pillar": { + "Package": "pillar", + "Version": "1.9.0", + "Source": "Repository" + }, + "pkgconfig": { + "Package": "pkgconfig", + "Version": "2.0.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "utils" + ], + "Hash": "01f28d4278f15c76cddbea05899c5d6f" + }, + "plyr": { + "Package": "plyr", + "Version": "1.8.9", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "Rcpp" + ], + "Hash": "6b8177fd19982f0020743fadbfdbd933" + }, + "png": { + "Package": "png", + "Version": "0.1-8", + "Source": "Repository" + }, + "polyclip": { + "Package": "polyclip", + "Version": "1.10-6", + "Source": "Repository" + }, + "purrr": { + "Package": "purrr", + "Version": "1.0.2", + "Source": "Repository" + }, + "qvalue": { + "Package": "qvalue", + "Version": "2.34.0", + "Source": "Bioconductor", + "Requirements": [ + "R", + "ggplot2", + "grid", + "reshape2", + "splines" + ], + "Hash": "76fc42834c44b69e4021f6ade524d299" + }, + "ragg": { + "Package": "ragg", + "Version": "1.3.0", + "Source": "Repository" + }, + "readr": { + "Package": "readr", + "Version": "2.1.5", + "Source": "Repository" + }, + "readxl": { + "Package": "readxl", + "Version": "1.4.3", + "Source": "Repository" + }, + "renv": { + "Package": "renv", + "Version": "1.0.7", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "utils" + ], + "Hash": "397b7b2a265bc5a7a06852524dabae20" + }, + "reprex": { + "Package": "reprex", + "Version": "2.1.0", + "Source": "Repository" + }, + "reshape2": { + "Package": "reshape2", + "Version": "1.4.4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "Rcpp", + "plyr", + "stringr" + ], + "Hash": "bb5996d0bd962d214a11140d77589917" + }, + "rhdf5": { + "Package": "rhdf5", + "Version": "2.46.1", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "R", + "Rhdf5lib", + "S4Vectors", + "methods", + "rhdf5filters" + ], + "Hash": "b0a244022c3427cd8213c33804c6b5de" + }, + "rhdf5filters": { + "Package": "rhdf5filters", + "Version": "1.14.1", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Requirements": [ + "Rhdf5lib" + ], + "Hash": "d27a2f6a89def6388fad5b0aae026220" + }, + "rlang": { + "Package": "rlang", + "Version": "1.1.3", + "Source": "Repository" + }, + "rmarkdown": { + "Package": "rmarkdown", + "Version": "2.26", + "Source": "Repository" + }, + "rstudioapi": { + "Package": "rstudioapi", + "Version": "0.16.0", + "Source": "Repository" + }, + "rvest": { + "Package": "rvest", + "Version": "1.0.4", + "Source": "Repository" + }, + "scales": { + "Package": "scales", + "Version": "1.3.0", + "Source": "Repository" + }, + "scuttle": { + "Package": "scuttle", + "Version": "1.12.0", + "Source": "Bioconductor", + "Requirements": [ + "BiocGenerics", + "BiocParallel", + "DelayedArray", + "DelayedMatrixStats", + "GenomicRanges", + "Matrix", + "Rcpp", + "S4Vectors", + "SingleCellExperiment", + "SummarizedExperiment", + "beachmat", + "methods", + "stats", + "utils" + ], + "Hash": "1412c4b6dfd8de528e1101e493e66a02" + }, + "sitmo": { + "Package": "sitmo", + "Version": "2.0.2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "Rcpp" + ], + "Hash": "c956d93f6768a9789edbc13072b70c78" + }, + "snow": { + "Package": "snow", + "Version": "0.4-4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "utils" + ], + "Hash": "40b74690debd20c57d93d8c246b305d4" + }, + "sparseMatrixStats": { + "Package": "sparseMatrixStats", + "Version": "1.14.0", + "Source": "Bioconductor", + "Requirements": [ + "Matrix", + "MatrixGenerics", + "Rcpp", + "matrixStats", + "methods" + ], + "Hash": "49383d0f6c6152ff7cb594f254c23cc8" + }, + "statmod": { + "Package": "statmod", + "Version": "1.5.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "graphics", + "stats" + ], + "Hash": "26e158d12052c279bdd4ba858b80fb1f" + }, + "stats": { + "Package": "stats", + "Version": "4.3.3", + "Source": "R" + }, + "stringi": { + "Package": "stringi", + "Version": "1.8.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "stats", + "tools", + "utils" + ], + "Hash": "058aebddea264f4c99401515182e656a" + }, + "stringr": { + "Package": "stringr", + "Version": "1.5.1", + "Source": "Repository" + }, + "svMisc": { + "Package": "svMisc", + "Version": "1.2.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "methods", + "stats", + "tools", + "utils" + ], + "Hash": "b13f5680860f67c32ccb006ad38f24f4" + }, + "svglite": { + "Package": "svglite", + "Version": "2.1.3", + "Source": "Repository" + }, + "systemfonts": { + "Package": "systemfonts", + "Version": "1.0.6", + "Source": "Repository" + }, + "tibble": { + "Package": "tibble", + "Version": "3.2.1", + "Source": "Repository" + }, + "tidyr": { + "Package": "tidyr", + "Version": "1.3.1", + "Source": "Repository" + }, + "tidyselect": { + "Package": "tidyselect", + "Version": "1.2.1", + "Source": "Repository" + }, + "tinytex": { + "Package": "tinytex", + "Version": "0.50", + "Source": "Repository" + }, + "tools": { + "Package": "tools", + "Version": "4.3.3", + "Source": "R" + }, + "tweenr": { + "Package": "tweenr", + "Version": "2.0.3", + "Source": "Repository" + }, + "tximport": { + "Package": "tximport", + "Version": "1.30.0", + "Source": "Bioconductor", + "Requirements": [ + "methods", + "stats", + "utils" + ], + "Hash": "6e9621b0f1bf9398255f32c7000a7e16" + }, + "utf8": { + "Package": "utf8", + "Version": "1.2.4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "62b65c52671e6665f803ff02954446e9" + }, + "utils": { + "Package": "utils", + "Version": "4.3.3", + "Source": "R" + }, + "vctrs": { + "Package": "vctrs", + "Version": "0.6.5", + "Source": "Repository" + }, + "viridisLite": { + "Package": "viridisLite", + "Version": "0.4.2", + "Source": "Repository" + }, + "withr": { + "Package": "withr", + "Version": "3.0.0", + "Source": "Repository" + }, + "xfun": { + "Package": "xfun", + "Version": "0.43", + "Source": "Repository" + }, + "xml2": { + "Package": "xml2", + "Version": "1.3.6", + "Source": "Repository" + }, + "yaml": { + "Package": "yaml", + "Version": "2.3.8", + "Source": "Repository" + }, + "zlibbioc": { + "Package": "zlibbioc", + "Version": "1.48.2", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.18", + "Hash": "2344be62c2da4d9e9942b5d8db346e59" + } + } +} diff --git a/docker/renv_seurat.lock b/docker/renv_seurat.lock index 3a0f0770..222da8f1 100644 --- a/docker/renv_seurat.lock +++ b/docker/renv_seurat.lock @@ -821,6 +821,11 @@ "Version": "0.1.3", "Source": "Repository" }, + "getopt": { + "Package": "getopt", + "Version": "1.20.4", + "Source": "Repository" + }, "ggplot2": { "Package": "ggplot2", "Version": "3.5.0", diff --git a/docker/renv_slim.lock b/docker/renv_slim.lock index 7e6f6d91..392cbbeb 100644 --- a/docker/renv_slim.lock +++ b/docker/renv_slim.lock @@ -805,6 +805,11 @@ ], "Hash": "15e9634c0fcd294799e9b2e929ed1b86" }, + "getopt": { + "Package": "getopt", + "Version": "1.20.4", + "Source": "Repository" + }, "ggplot2": { "Package": "ggplot2", "Version": "3.5.0", @@ -1008,6 +1013,11 @@ ], "Hash": "4b3ea27a19d669c0405b38134d89a9d1" }, + "methods": { + "Package": "methods", + "Version": "4.3.3", + "Source": "R" + }, "mgcv": { "Package": "mgcv", "Version": "1.9-1", diff --git a/docker/renv_zellkonverter.lock b/docker/renv_zellkonverter.lock index 20f766f7..557d5150 100644 --- a/docker/renv_zellkonverter.lock +++ b/docker/renv_zellkonverter.lock @@ -745,6 +745,11 @@ ], "Hash": "15e9634c0fcd294799e9b2e929ed1b86" }, + "getopt": { + "Package": "getopt", + "Version": "1.20.4", + "Source": "Repository" + }, "ggplot2": { "Package": "ggplot2", "Version": "3.5.0", diff --git a/docker/scpcatools_reports.Dockerfile b/docker/scpcatools_reports.Dockerfile new file mode 100644 index 00000000..1e89f968 --- /dev/null +++ b/docker/scpcatools_reports.Dockerfile @@ -0,0 +1,27 @@ +FROM bioconductor/r-ver:3.18 +LABEL maintainer="ccdl@alexslemonade.org" +LABEL org.opencontainers.image.source https://github.com/AlexsLemonade/scpcaTools +LABEL org.opencontainers.image.title "scpcatools-slim" + +#### R packages +# Use renv for R packages +ENV RENV_CONFIG_CACHE_ENABLED FALSE +RUN Rscript -e "install.packages(c('remotes', 'renv'))" + +WORKDIR /usr/local/renv +COPY renv_reports.lock renv.lock +# restore renv and remove cache files +RUN Rscript -e "renv::restore()" && \ + rm -rf ~/.cache/R/renv && \ + rm -rf /tmp/downloaded_packages && \ + rm -rf /tmp/Rtmp* + +########################## +# bust cache if needed +ADD "https://api.github.com/repos/AlexsLemonade/scpcaTools/commits?per_page=1" latest_commit +# Install scpcaTools package (& test loading) +RUN Rscript -e "remotes::install_github('AlexsLemonade/scpcaTools', upgrade = 'never'); \ + require(scpcaTools)" + +# set final workdir for commands +WORKDIR /home diff --git a/docker/scpcatools_scvi.Dockerfile b/docker/scpcatools_scvi.Dockerfile new file mode 100644 index 00000000..14605cc7 --- /dev/null +++ b/docker/scpcatools_scvi.Dockerfile @@ -0,0 +1,36 @@ +FROM bioconductor/r-ver:3.18 +LABEL maintainer="ccdl@alexslemonade.org" +LABEL org.opencontainers.image.source https://github.com/AlexsLemonade/scpcaTools +LABEL org.opencontainers.image.title "scpcatools-anndata" + +#### R packages +# Use renv for R packages +ENV RENV_CONFIG_CACHE_ENABLED FALSE +RUN Rscript -e "install.packages(c('remotes', 'renv'))" + +WORKDIR /usr/local/renv +COPY renv_zellkonverter.lock renv.lock +# restore renv and remove cache files +RUN Rscript -e "renv::restore()" && \ + rm -rf ~/.cache/R/renv && \ + rm -rf /tmp/downloaded_packages && \ + rm -rf /tmp/Rtmp* + +# Complete installation of zellkonverter conda env +ENV BASILISK_EXTERNAL_DIR /usr/local/renv/basilisk +RUN Rscript -e "proc <- basilisk::basiliskStart(env = zellkonverter::zellkonverterAnnDataEnv(), testload = 'anndata'); \ + basilisk::basiliskStop(proc)" + +#### Python packages +COPY requirements_scvi.txt requirements.txt +RUN pip install --no-cache-dir -r requirements.txt + +########################## +# bust cache if needed +ADD "https://api.github.com/repos/AlexsLemonade/scpcaTools/commits?per_page=1" latest_commit +# Install scpcaTools package (& test loading) +RUN Rscript -e "remotes::install_github('AlexsLemonade/scpcaTools', upgrade = 'never'); \ + require(scpcaTools)" + +# set final workdir for commands +WORKDIR /home diff --git a/docker/scpcatools_seurat.Dockerfile b/docker/scpcatools_seurat.Dockerfile new file mode 100644 index 00000000..da967bca --- /dev/null +++ b/docker/scpcatools_seurat.Dockerfile @@ -0,0 +1,27 @@ +FROM bioconductor/r-ver:3.18 +LABEL maintainer="ccdl@alexslemonade.org" +LABEL org.opencontainers.image.source https://github.com/AlexsLemonade/scpcaTools +LABEL org.opencontainers.image.title "scpcatools-slim" + +#### R packages +# Use renv for R packages +ENV RENV_CONFIG_CACHE_ENABLED FALSE +RUN Rscript -e "install.packages(c('remotes', 'renv'))" + +WORKDIR /usr/local/renv +COPY renv_seurat.lock renv.lock +# restore renv and remove cache files +RUN Rscript -e "renv::restore()" && \ + rm -rf ~/.cache/R/renv && \ + rm -rf /tmp/downloaded_packages && \ + rm -rf /tmp/Rtmp* + +########################## +# bust cache if needed +ADD "https://api.github.com/repos/AlexsLemonade/scpcaTools/commits?per_page=1" latest_commit +# Install scpcaTools package (& test loading) +RUN Rscript -e "remotes::install_github('AlexsLemonade/scpcaTools', upgrade = 'never'); \ + require(scpcaTools)" + +# set final workdir for commands +WORKDIR /home diff --git a/docker/scripts/make-lockfile.R b/docker/scripts/make-lockfile.R index 90e34e9c..419102c4 100644 --- a/docker/scripts/make-lockfile.R +++ b/docker/scripts/make-lockfile.R @@ -47,7 +47,7 @@ renv::snapshot(lockfile = opts$lockfile, type = "explicit") # additional dependencies for added packages added_packages <- opts$packages |> stringr::str_split_1("[,;\\s]+") |> - c("tidyverse") |> # always include tidyverse + c("tidyverse", "optparse") |> # always include tidyverse and optparse tools::package_dependencies() |> unlist() |> unique() From 4d5f1c1152132f4f2cbf4b503d21fb0b90813ada Mon Sep 17 00:00:00 2001 From: Joshua Shapiro Date: Tue, 23 Apr 2024 12:15:53 -0400 Subject: [PATCH 23/28] Add more images --- .github/workflows/build-docker.yaml | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/.github/workflows/build-docker.yaml b/.github/workflows/build-docker.yaml index dc80e829..27be53a2 100644 --- a/.github/workflows/build-docker.yaml +++ b/.github/workflows/build-docker.yaml @@ -28,6 +28,14 @@ jobs: dockerfile: Dockerfile - image_name: scpcatools-slim dockerfile: scpcatools_slim.Dockerfile + - image_name: scpcatools-reports + dockerfile: scpcatools_reports.Dockerfile + - image_name: scpcatools-anndata + dockerfile: scpcatools_anndata.Dockerfile + - image_name: scpcatools-scvi + dockerfile: scpcatools_scvi.Dockerfile + - image_name: scpcatools-seurat + dockerfile: scpcatools_seurat.Dockerfile steps: - name: Set up Docker Buildx uses: docker/setup-buildx-action@v3 From 067b9d1e10f4153117e0fcf89382968017336dcb Mon Sep 17 00:00:00 2001 From: Joshua Shapiro Date: Tue, 23 Apr 2024 13:43:50 -0400 Subject: [PATCH 24/28] Add named packages and get recursive deps --- docker/renv_reports.lock | 424 +++++++++++-------- docker/renv_seurat.lock | 698 +++++++++++++++++++++---------- docker/renv_slim.lock | 552 +++++++++++++----------- docker/renv_zellkonverter.lock | 744 +++++++++++++++++---------------- docker/scripts/make-lockfile.R | 11 +- 5 files changed, 1429 insertions(+), 1000 deletions(-) diff --git a/docker/renv_reports.lock b/docker/renv_reports.lock index b59e36d7..815c9e62 100644 --- a/docker/renv_reports.lock +++ b/docker/renv_reports.lock @@ -54,15 +54,7 @@ "BiocGenerics": { "Package": "BiocGenerics", "Version": "0.48.1", - "Source": "Bioconductor", - "Requirements": [ - "R", - "graphics", - "methods", - "stats", - "utils" - ], - "Hash": "e34278c65d7dffcc08f737bf0944ca9a" + "Source": "Repository" }, "BiocManager": { "Package": "BiocManager", @@ -118,6 +110,16 @@ ], "Hash": "2ecaed86684f5fae76ed5530f9d29c4a" }, + "ComplexHeatmap": { + "Package": "ComplexHeatmap", + "Version": "2.18.0", + "Source": "Repository" + }, + "DBI": { + "Package": "DBI", + "Version": "1.2.2", + "Source": "Repository" + }, "DelayedArray": { "Package": "DelayedArray", "Version": "0.28.0", @@ -275,19 +277,7 @@ "Matrix": { "Package": "Matrix", "Version": "1.6-5", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "grDevices", - "graphics", - "grid", - "lattice", - "methods", - "stats", - "utils" - ], - "Hash": "8c7115cd3a0e048bda2a7cd110549f7a" + "Source": "Repository" }, "MatrixGenerics": { "Package": "MatrixGenerics", @@ -341,12 +331,7 @@ "R6": { "Package": "R6", "Version": "2.5.1", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R" - ], - "Hash": "470851b6d5d0ac559e9d01bb352b4021" + "Source": "Repository" }, "RColorBrewer": { "Package": "RColorBrewer", @@ -417,17 +402,7 @@ "S4Vectors": { "Package": "S4Vectors", "Version": "0.40.2", - "Source": "Bioconductor", - "Repository": "Bioconductor 3.18", - "Requirements": [ - "BiocGenerics", - "R", - "methods", - "stats", - "stats4", - "utils" - ], - "Hash": "1716e201f81ced0f456dd5ec85fe20f8" + "Source": "Repository" }, "SingleCellExperiment": { "Package": "SingleCellExperiment", @@ -516,6 +491,21 @@ ], "Hash": "4f57884290cc75ab22f4af9e9d4ca862" }, + "askpass": { + "Package": "askpass", + "Version": "1.2.0", + "Source": "Repository" + }, + "backports": { + "Package": "backports", + "Version": "1.4.1", + "Source": "Repository" + }, + "base64enc": { + "Package": "base64enc", + "Version": "0.1-3", + "Source": "Repository" + }, "beachmat": { "Package": "beachmat", "Version": "2.18.1", @@ -531,6 +521,16 @@ ], "Hash": "c1c423ca7149d9e7f55d1e609342c2bd" }, + "bit": { + "Package": "bit", + "Version": "4.0.5", + "Source": "Repository" + }, + "bit64": { + "Package": "bit64", + "Version": "4.0.5", + "Source": "Repository" + }, "bitops": { "Package": "bitops", "Version": "1.0-7", @@ -538,6 +538,11 @@ "Repository": "RSPM", "Hash": "b7d8d8ee39869c18d8846a184dd8a1af" }, + "blob": { + "Package": "blob", + "Version": "1.2.4", + "Source": "Repository" + }, "bluster": { "Package": "bluster", "Version": "1.12.0", @@ -567,6 +572,21 @@ "Version": "0.7.0", "Source": "Repository" }, + "cachem": { + "Package": "cachem", + "Version": "1.0.8", + "Source": "Repository" + }, + "callr": { + "Package": "callr", + "Version": "3.7.6", + "Source": "Repository" + }, + "cellranger": { + "Package": "cellranger", + "Version": "1.1.0", + "Source": "Repository" + }, "circlize": { "Package": "circlize", "Version": "0.4.16", @@ -577,6 +597,11 @@ "Version": "3.6.2", "Source": "Repository" }, + "clipr": { + "Package": "clipr", + "Version": "0.8.0", + "Source": "Repository" + }, "clue": { "Package": "clue", "Version": "0.3-65", @@ -585,16 +610,7 @@ "cluster": { "Package": "cluster", "Version": "2.1.6", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "grDevices", - "graphics", - "stats", - "utils" - ], - "Hash": "0aaa05204035dc43ea0004b9c76611dd" + "Source": "Repository" }, "codetools": { "Package": "codetools", @@ -614,24 +630,22 @@ "cpp11": { "Package": "cpp11", "Version": "0.4.7", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R" - ], - "Hash": "5a295d7d963cc5035284dcdbaf334f4e" + "Source": "Repository" }, "crayon": { "Package": "crayon", "Version": "1.5.2", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "grDevices", - "methods", - "utils" - ], - "Hash": "e8a1e41acf02548751f45c718d55aa6a" + "Source": "Repository" + }, + "curl": { + "Package": "curl", + "Version": "5.2.1", + "Source": "Repository" + }, + "data.table": { + "Package": "data.table", + "Version": "1.15.4", + "Source": "Repository" }, "dbplyr": { "Package": "dbplyr", @@ -688,6 +702,11 @@ ], "Hash": "a0405c7890708dcb53809d46758800f4" }, + "ellipsis": { + "Package": "ellipsis", + "Version": "0.3.2", + "Source": "Repository" + }, "evaluate": { "Package": "evaluate", "Version": "0.23", @@ -696,21 +715,17 @@ "fansi": { "Package": "fansi", "Version": "1.0.6", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "grDevices", - "utils" - ], - "Hash": "962174cf2aeb5b9eea581522286a911f" + "Source": "Repository" }, "farver": { "Package": "farver", "Version": "2.1.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "8106d78941f34855c440ddb946b8f7a5" + "Source": "Repository" + }, + "fastmap": { + "Package": "fastmap", + "Version": "1.1.1", + "Source": "Repository" }, "fishpond": { "Package": "fishpond", @@ -781,6 +796,11 @@ ], "Hash": "63cb26d12517c7863f5abb006c5e0f25" }, + "fs": { + "Package": "fs", + "Version": "1.6.3", + "Source": "Repository" + }, "futile.logger": { "Package": "futile.logger", "Version": "1.4.3", @@ -804,22 +824,26 @@ ], "Hash": "0d9bf02413ddc2bbe8da9ce369dcdd2b" }, + "gargle": { + "Package": "gargle", + "Version": "1.5.2", + "Source": "Repository" + }, "generics": { "Package": "generics", "Version": "0.1.3", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "methods" - ], - "Hash": "15e9634c0fcd294799e9b2e929ed1b86" + "Source": "Repository" }, "getopt": { "Package": "getopt", "Version": "1.20.4", "Source": "Repository" }, + "ggforce": { + "Package": "ggforce", + "Version": "0.4.2", + "Source": "Repository" + }, "ggplot2": { "Package": "ggplot2", "Version": "3.5.0", @@ -828,13 +852,7 @@ "glue": { "Package": "glue", "Version": "1.7.0", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "methods" - ], - "Hash": "e0b3a53876554bd45879e596cdb10a52" + "Source": "Repository" }, "googledrive": { "Package": "googledrive", @@ -883,6 +901,11 @@ "Version": "2.5.4", "Source": "Repository" }, + "highr": { + "Package": "highr", + "Version": "0.10", + "Source": "Repository" + }, "hms": { "Package": "hms", "Version": "1.1.3", @@ -898,6 +921,11 @@ "Version": "1.4.7", "Source": "Repository" }, + "ids": { + "Package": "ids", + "Version": "1.0.1", + "Source": "Repository" + }, "igraph": { "Package": "igraph", "Version": "2.0.3", @@ -924,13 +952,12 @@ "isoband": { "Package": "isoband", "Version": "0.2.7", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "grid", - "utils" - ], - "Hash": "0080607b4a1a7b28979aecef976d8bc2" + "Source": "Repository" + }, + "iterators": { + "Package": "iterators", + "Version": "1.0.14", + "Source": "Repository" }, "jquerylib": { "Package": "jquerylib", @@ -942,6 +969,11 @@ "Version": "1.8.8", "Source": "Repository" }, + "kableExtra": { + "Package": "kableExtra", + "Version": "1.4.0", + "Source": "Repository" + }, "knitr": { "Package": "knitr", "Version": "1.46", @@ -950,13 +982,7 @@ "labeling": { "Package": "labeling", "Version": "0.4.3", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "graphics", - "stats" - ], - "Hash": "b64ec208ac5bc1852b285f665d6368b3" + "Source": "Repository" }, "lambda.r": { "Package": "lambda.r", @@ -972,17 +998,7 @@ "lattice": { "Package": "lattice", "Version": "0.22-6", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "grDevices", - "graphics", - "grid", - "stats", - "utils" - ], - "Hash": "cc5ac1ba4c238c7ca9fa6a87ca11a7e2" + "Source": "Repository" }, "lifecycle": { "Package": "lifecycle", @@ -1030,6 +1046,11 @@ "Version": "1.3.0", "Source": "Repository" }, + "memoise": { + "Package": "memoise", + "Version": "2.0.1", + "Source": "Repository" + }, "methods": { "Package": "methods", "Version": "4.3.3", @@ -1038,19 +1059,7 @@ "mgcv": { "Package": "mgcv", "Version": "1.9-1", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "Matrix", - "R", - "graphics", - "methods", - "nlme", - "splines", - "stats", - "utils" - ], - "Hash": "110ee9d83b496279960e162ac97764ce" + "Source": "Repository" }, "miQC": { "Package": "miQC", @@ -1065,6 +1074,11 @@ ], "Hash": "5d3660451d88509307ce0b0e48748109" }, + "mime": { + "Package": "mime", + "Version": "0.12", + "Source": "Repository" + }, "modelr": { "Package": "modelr", "Version": "0.1.11", @@ -1085,27 +1099,12 @@ "munsell": { "Package": "munsell", "Version": "0.5.1", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "colorspace", - "methods" - ], - "Hash": "4fd8900853b746af55b81fda99da7695" + "Source": "Repository" }, "nlme": { "Package": "nlme", "Version": "3.1-164", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "graphics", - "lattice", - "stats", - "utils" - ], - "Hash": "a623a2239e642806158bc4dc3f51565d" + "Source": "Repository" }, "nnet": { "Package": "nnet", @@ -1119,6 +1118,21 @@ ], "Hash": "2c797b46eea7fb58ede195bc0b1f1138" }, + "openssl": { + "Package": "openssl", + "Version": "2.1.2", + "Source": "Repository" + }, + "optparse": { + "Package": "optparse", + "Version": "1.7.5", + "Source": "Repository" + }, + "parallel": { + "Package": "parallel", + "Version": "4.3.3", + "Source": "R" + }, "pillar": { "Package": "pillar", "Version": "1.9.0", @@ -1127,12 +1141,7 @@ "pkgconfig": { "Package": "pkgconfig", "Version": "2.0.3", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "utils" - ], - "Hash": "01f28d4278f15c76cddbea05899c5d6f" + "Source": "Repository" }, "plyr": { "Package": "plyr", @@ -1155,6 +1164,26 @@ "Version": "1.10-6", "Source": "Repository" }, + "prettyunits": { + "Package": "prettyunits", + "Version": "1.2.0", + "Source": "Repository" + }, + "processx": { + "Package": "processx", + "Version": "3.8.4", + "Source": "Repository" + }, + "progress": { + "Package": "progress", + "Version": "1.2.3", + "Source": "Repository" + }, + "ps": { + "Package": "ps", + "Version": "1.7.6", + "Source": "Repository" + }, "purrr": { "Package": "purrr", "Version": "1.0.2", @@ -1178,6 +1207,11 @@ "Version": "1.3.0", "Source": "Repository" }, + "rappdirs": { + "Package": "rappdirs", + "Version": "0.3.3", + "Source": "Repository" + }, "readr": { "Package": "readr", "Version": "2.1.5", @@ -1188,6 +1222,16 @@ "Version": "1.4.3", "Source": "Repository" }, + "rematch": { + "Package": "rematch", + "Version": "2.0.0", + "Source": "Repository" + }, + "rematch2": { + "Package": "rematch2", + "Version": "2.1.2", + "Source": "Repository" + }, "renv": { "Package": "renv", "Version": "1.0.7", @@ -1240,6 +1284,11 @@ ], "Hash": "d27a2f6a89def6388fad5b0aae026220" }, + "rjson": { + "Package": "rjson", + "Version": "0.2.21", + "Source": "Repository" + }, "rlang": { "Package": "rlang", "Version": "1.1.3", @@ -1260,6 +1309,11 @@ "Version": "1.0.4", "Source": "Repository" }, + "sass": { + "Package": "sass", + "Version": "0.4.9", + "Source": "Repository" + }, "scales": { "Package": "scales", "Version": "1.3.0", @@ -1287,6 +1341,16 @@ ], "Hash": "1412c4b6dfd8de528e1101e493e66a02" }, + "selectr": { + "Package": "selectr", + "Version": "0.4-2", + "Source": "Repository" + }, + "shape": { + "Package": "shape", + "Version": "1.4.6.1", + "Source": "Repository" + }, "sitmo": { "Package": "sitmo", "Version": "2.0.2", @@ -1322,6 +1386,11 @@ ], "Hash": "49383d0f6c6152ff7cb594f254c23cc8" }, + "splines": { + "Package": "splines", + "Version": "4.3.3", + "Source": "R" + }, "statmod": { "Package": "statmod", "Version": "1.5.0", @@ -1339,18 +1408,15 @@ "Version": "4.3.3", "Source": "R" }, + "stats4": { + "Package": "stats4", + "Version": "4.3.3", + "Source": "R" + }, "stringi": { "Package": "stringi", "Version": "1.8.3", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "stats", - "tools", - "utils" - ], - "Hash": "058aebddea264f4c99401515182e656a" + "Source": "Repository" }, "stringr": { "Package": "stringr", @@ -1376,11 +1442,21 @@ "Version": "2.1.3", "Source": "Repository" }, + "sys": { + "Package": "sys", + "Version": "3.4.2", + "Source": "Repository" + }, "systemfonts": { "Package": "systemfonts", "Version": "1.0.6", "Source": "Repository" }, + "textshaping": { + "Package": "textshaping", + "Version": "0.3.7", + "Source": "Repository" + }, "tibble": { "Package": "tibble", "Version": "3.2.1", @@ -1396,6 +1472,16 @@ "Version": "1.2.1", "Source": "Repository" }, + "tidyverse": { + "Package": "tidyverse", + "Version": "2.0.0", + "Source": "Repository" + }, + "timechange": { + "Package": "timechange", + "Version": "0.3.0", + "Source": "Repository" + }, "tinytex": { "Package": "tinytex", "Version": "0.50", @@ -1422,21 +1508,26 @@ ], "Hash": "6e9621b0f1bf9398255f32c7000a7e16" }, + "tzdb": { + "Package": "tzdb", + "Version": "0.4.0", + "Source": "Repository" + }, "utf8": { "Package": "utf8", "Version": "1.2.4", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R" - ], - "Hash": "62b65c52671e6665f803ff02954446e9" + "Source": "Repository" }, "utils": { "Package": "utils", "Version": "4.3.3", "Source": "R" }, + "uuid": { + "Package": "uuid", + "Version": "1.2-0", + "Source": "Repository" + }, "vctrs": { "Package": "vctrs", "Version": "0.6.5", @@ -1447,6 +1538,11 @@ "Version": "0.4.2", "Source": "Repository" }, + "vroom": { + "Package": "vroom", + "Version": "1.6.5", + "Source": "Repository" + }, "withr": { "Package": "withr", "Version": "3.0.0", diff --git a/docker/renv_seurat.lock b/docker/renv_seurat.lock index 222da8f1..63e64fcb 100644 --- a/docker/renv_seurat.lock +++ b/docker/renv_seurat.lock @@ -35,9 +35,7 @@ "BH": { "Package": "BH", "Version": "1.84.0-0", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "a8235afbcd6316e6e91433ea47661013" + "Source": "Repository" }, "Biobase": { "Package": "Biobase", @@ -118,6 +116,11 @@ ], "Hash": "2ecaed86684f5fae76ed5530f9d29c4a" }, + "DBI": { + "Package": "DBI", + "Version": "1.2.2", + "Source": "Repository" + }, "DelayedArray": { "Package": "DelayedArray", "Version": "0.28.0", @@ -183,6 +186,11 @@ ], "Hash": "be3893d30c97591f1d3ec6f053830c3a" }, + "FNN": { + "Package": "FNN", + "Version": "1.1.4", + "Source": "Repository" + }, "GenomeInfoDb": { "Package": "GenomeInfoDb", "Version": "1.38.8", @@ -334,12 +342,7 @@ "R6": { "Package": "R6", "Version": "2.5.1", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R" - ], - "Hash": "470851b6d5d0ac559e9d01bb352b4021" + "Source": "Repository" }, "RANN": { "Package": "RANN", @@ -383,6 +386,11 @@ "Version": "0.0.22", "Source": "Repository" }, + "RcppArmadillo": { + "Package": "RcppArmadillo", + "Version": "0.12.8.2.1", + "Source": "Repository" + }, "RcppEigen": { "Package": "RcppEigen", "Version": "0.3.4.0.0", @@ -398,6 +406,11 @@ "Version": "0.4.2", "Source": "Repository" }, + "RcppTOML": { + "Package": "RcppTOML", + "Version": "0.2.2", + "Source": "Repository" + }, "Rhdf5lib": { "Package": "Rhdf5lib", "Version": "1.24.2", @@ -446,6 +459,11 @@ ], "Hash": "1716e201f81ced0f456dd5ec85fe20f8" }, + "Seurat": { + "Package": "Seurat", + "Version": "5.0.3", + "Source": "Repository" + }, "SeuratObject": { "Package": "SeuratObject", "Version": "5.0.1", @@ -529,14 +547,22 @@ "abind": { "Package": "abind", "Version": "1.4-5", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "methods", - "utils" - ], - "Hash": "4f57884290cc75ab22f4af9e9d4ca862" + "Source": "Repository" + }, + "askpass": { + "Package": "askpass", + "Version": "1.2.0", + "Source": "Repository" + }, + "backports": { + "Package": "backports", + "Version": "1.4.1", + "Source": "Repository" + }, + "base64enc": { + "Package": "base64enc", + "Version": "0.1-3", + "Source": "Repository" }, "beachmat": { "Package": "beachmat", @@ -553,12 +579,25 @@ ], "Hash": "c1c423ca7149d9e7f55d1e609342c2bd" }, + "bit": { + "Package": "bit", + "Version": "4.0.5", + "Source": "Repository" + }, + "bit64": { + "Package": "bit64", + "Version": "4.0.5", + "Source": "Repository" + }, "bitops": { "Package": "bitops", "Version": "1.0-7", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "b7d8d8ee39869c18d8846a184dd8a1af" + "Source": "Repository" + }, + "blob": { + "Package": "blob", + "Version": "1.2.4", + "Source": "Repository" }, "bluster": { "Package": "bluster", @@ -584,11 +623,41 @@ "Version": "1.0.5", "Source": "Repository" }, + "bslib": { + "Package": "bslib", + "Version": "0.7.0", + "Source": "Repository" + }, + "caTools": { + "Package": "caTools", + "Version": "1.18.2", + "Source": "Repository" + }, + "cachem": { + "Package": "cachem", + "Version": "1.0.8", + "Source": "Repository" + }, + "callr": { + "Package": "callr", + "Version": "3.7.6", + "Source": "Repository" + }, + "cellranger": { + "Package": "cellranger", + "Version": "1.1.0", + "Source": "Repository" + }, "cli": { "Package": "cli", "Version": "3.6.2", "Source": "Repository" }, + "clipr": { + "Package": "clipr", + "Version": "0.8.0", + "Source": "Repository" + }, "cluster": { "Package": "cluster", "Version": "2.1.6", @@ -597,26 +666,17 @@ "codetools": { "Package": "codetools", "Version": "0.2-20", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R" - ], - "Hash": "61e097f35917d342622f21cdc79c256e" + "Source": "Repository" }, "colorspace": { "Package": "colorspace", "Version": "2.1-0", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "grDevices", - "graphics", - "methods", - "stats" - ], - "Hash": "f20c47fd52fae58b4e377c37bb8c335b" + "Source": "Repository" + }, + "commonmark": { + "Package": "commonmark", + "Version": "1.9.1", + "Source": "Repository" }, "conflicted": { "Package": "conflicted", @@ -631,30 +691,48 @@ "cpp11": { "Package": "cpp11", "Version": "0.4.7", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R" - ], - "Hash": "5a295d7d963cc5035284dcdbaf334f4e" + "Source": "Repository" }, "crayon": { "Package": "crayon", "Version": "1.5.2", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "grDevices", - "methods", - "utils" - ], - "Hash": "e8a1e41acf02548751f45c718d55aa6a" + "Source": "Repository" + }, + "crosstalk": { + "Package": "crosstalk", + "Version": "1.2.1", + "Source": "Repository" + }, + "curl": { + "Package": "curl", + "Version": "5.2.1", + "Source": "Repository" + }, + "data.table": { + "Package": "data.table", + "Version": "1.15.4", + "Source": "Repository" }, "dbplyr": { "Package": "dbplyr", "Version": "2.5.0", "Source": "Repository" }, + "deldir": { + "Package": "deldir", + "Version": "2.0-4", + "Source": "Repository" + }, + "digest": { + "Package": "digest", + "Version": "0.6.35", + "Source": "Repository" + }, + "dotCall64": { + "Package": "dotCall64", + "Version": "1.1-1", + "Source": "Repository" + }, "dplyr": { "Package": "dplyr", "Version": "1.1.4", @@ -663,15 +741,7 @@ "dqrng": { "Package": "dqrng", "Version": "0.3.2", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "BH", - "R", - "Rcpp", - "sitmo" - ], - "Hash": "824df2aeba88d701df5e79018b35b815" + "Source": "Repository" }, "dtplyr": { "Package": "dtplyr", @@ -695,30 +765,36 @@ ], "Hash": "a0405c7890708dcb53809d46758800f4" }, + "ellipsis": { + "Package": "ellipsis", + "Version": "0.3.2", + "Source": "Repository" + }, + "evaluate": { + "Package": "evaluate", + "Version": "0.23", + "Source": "Repository" + }, "fansi": { "Package": "fansi", "Version": "1.0.6", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "grDevices", - "utils" - ], - "Hash": "962174cf2aeb5b9eea581522286a911f" + "Source": "Repository" }, "farver": { "Package": "farver", "Version": "2.1.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "8106d78941f34855c440ddb946b8f7a5" + "Source": "Repository" }, "fastDummies": { "Package": "fastDummies", "Version": "1.7.3", "Source": "Repository" }, + "fastmap": { + "Package": "fastmap", + "Version": "1.1.1", + "Source": "Repository" + }, "fishpond": { "Package": "fishpond", "Version": "2.8.0", @@ -768,6 +844,11 @@ ], "Hash": "0cb3c4b251c2d3fd5923d3e7e6021ee2" }, + "fontawesome": { + "Package": "fontawesome", + "Version": "0.5.2", + "Source": "Repository" + }, "forcats": { "Package": "forcats", "Version": "1.0.0", @@ -783,6 +864,11 @@ ], "Hash": "63cb26d12517c7863f5abb006c5e0f25" }, + "fs": { + "Package": "fs", + "Version": "1.6.3", + "Source": "Repository" + }, "futile.logger": { "Package": "futile.logger", "Version": "1.4.3", @@ -816,6 +902,11 @@ "Version": "1.11.2", "Source": "Repository" }, + "gargle": { + "Package": "gargle", + "Version": "1.5.2", + "Source": "Repository" + }, "generics": { "Package": "generics", "Version": "0.1.3", @@ -841,16 +932,20 @@ "Version": "0.5.6", "Source": "Repository" }, + "globals": { + "Package": "globals", + "Version": "0.16.3", + "Source": "Repository" + }, "glue": { "Package": "glue", "Version": "1.7.0", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "methods" - ], - "Hash": "e0b3a53876554bd45879e596cdb10a52" + "Source": "Repository" + }, + "goftest": { + "Package": "goftest", + "Version": "1.2-3", + "Source": "Repository" }, "googledrive": { "Package": "googledrive", @@ -862,6 +957,11 @@ "Version": "1.1.1", "Source": "Repository" }, + "gplots": { + "Package": "gplots", + "Version": "3.1.3.1", + "Source": "Repository" + }, "grDevices": { "Package": "grDevices", "Version": "4.3.3", @@ -877,43 +977,56 @@ "Version": "4.3.3", "Source": "R" }, + "gridExtra": { + "Package": "gridExtra", + "Version": "2.3", + "Source": "Repository" + }, "gtable": { "Package": "gtable", - "Version": "0.3.4", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "cli", - "glue", - "grid", - "lifecycle", - "rlang" - ], - "Hash": "b29cf3031f49b04ab9c852c912547eef" + "Version": "0.3.5", + "Source": "Repository" }, "gtools": { "Package": "gtools", "Version": "3.9.5", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "methods", - "stats", - "utils" - ], - "Hash": "588d091c35389f1f4a9d533c8d709b35" + "Source": "Repository" }, "haven": { "Package": "haven", "Version": "2.5.4", "Source": "Repository" }, + "here": { + "Package": "here", + "Version": "1.0.1", + "Source": "Repository" + }, + "highr": { + "Package": "highr", + "Version": "0.10", + "Source": "Repository" + }, "hms": { "Package": "hms", "Version": "1.1.3", "Source": "Repository" }, + "htmltools": { + "Package": "htmltools", + "Version": "0.5.8.1", + "Source": "Repository" + }, + "htmlwidgets": { + "Package": "htmlwidgets", + "Version": "1.6.4", + "Source": "Repository" + }, + "httpuv": { + "Package": "httpuv", + "Version": "1.6.15", + "Source": "Repository" + }, "httr": { "Package": "httr", "Version": "1.4.7", @@ -924,6 +1037,11 @@ "Version": "1.0-3", "Source": "Repository" }, + "ids": { + "Package": "ids", + "Version": "1.0.1", + "Source": "Repository" + }, "igraph": { "Package": "igraph", "Version": "2.0.3", @@ -937,29 +1055,27 @@ "isoband": { "Package": "isoband", "Version": "0.2.7", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "grid", - "utils" - ], - "Hash": "0080607b4a1a7b28979aecef976d8bc2" + "Source": "Repository" + }, + "jquerylib": { + "Package": "jquerylib", + "Version": "0.1.4", + "Source": "Repository" }, "jsonlite": { "Package": "jsonlite", "Version": "1.8.8", "Source": "Repository" }, + "knitr": { + "Package": "knitr", + "Version": "1.46", + "Source": "Repository" + }, "labeling": { "Package": "labeling", "Version": "0.4.3", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "graphics", - "stats" - ], - "Hash": "b64ec208ac5bc1852b285f665d6368b3" + "Source": "Repository" }, "lambda.r": { "Package": "lambda.r", @@ -972,20 +1088,20 @@ ], "Hash": "b1e925c4b9ffeb901bacf812cbe9a6ad" }, + "later": { + "Package": "later", + "Version": "1.3.2", + "Source": "Repository" + }, "lattice": { "Package": "lattice", "Version": "0.22-6", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "grDevices", - "graphics", - "grid", - "stats", - "utils" - ], - "Hash": "cc5ac1ba4c238c7ca9fa6a87ca11a7e2" + "Source": "Repository" + }, + "lazyeval": { + "Package": "lazyeval", + "Version": "0.2.2", + "Source": "Repository" }, "leiden": { "Package": "leiden", @@ -1012,6 +1128,11 @@ ], "Hash": "74c3b64358e0be7edc3ecd130816dd3f" }, + "listenv": { + "Package": "listenv", + "Version": "0.9.1", + "Source": "Repository" + }, "lmtest": { "Package": "lmtest", "Version": "0.9-40", @@ -1043,6 +1164,11 @@ "Version": "1.3.0", "Source": "Repository" }, + "memoise": { + "Package": "memoise", + "Version": "2.0.1", + "Source": "Repository" + }, "methods": { "Package": "methods", "Version": "4.3.3", @@ -1051,19 +1177,7 @@ "mgcv": { "Package": "mgcv", "Version": "1.9-1", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "Matrix", - "R", - "graphics", - "methods", - "nlme", - "splines", - "stats", - "utils" - ], - "Hash": "110ee9d83b496279960e162ac97764ce" + "Source": "Repository" }, "miQC": { "Package": "miQC", @@ -1078,6 +1192,11 @@ ], "Hash": "5d3660451d88509307ce0b0e48748109" }, + "mime": { + "Package": "mime", + "Version": "0.12", + "Source": "Repository" + }, "miniUI": { "Package": "miniUI", "Version": "0.1.1.1", @@ -1103,27 +1222,12 @@ "munsell": { "Package": "munsell", "Version": "0.5.1", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "colorspace", - "methods" - ], - "Hash": "4fd8900853b746af55b81fda99da7695" + "Source": "Repository" }, "nlme": { "Package": "nlme", "Version": "3.1-164", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "graphics", - "lattice", - "stats", - "utils" - ], - "Hash": "a623a2239e642806158bc4dc3f51565d" + "Source": "Repository" }, "nnet": { "Package": "nnet", @@ -1137,6 +1241,26 @@ ], "Hash": "2c797b46eea7fb58ede195bc0b1f1138" }, + "openssl": { + "Package": "openssl", + "Version": "2.1.2", + "Source": "Repository" + }, + "optparse": { + "Package": "optparse", + "Version": "1.7.5", + "Source": "Repository" + }, + "parallel": { + "Package": "parallel", + "Version": "4.3.3", + "Source": "R" + }, + "parallelly": { + "Package": "parallelly", + "Version": "1.37.1", + "Source": "Repository" + }, "patchwork": { "Package": "patchwork", "Version": "1.2.0", @@ -1155,12 +1279,7 @@ "pkgconfig": { "Package": "pkgconfig", "Version": "2.0.3", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "utils" - ], - "Hash": "01f28d4278f15c76cddbea05899c5d6f" + "Source": "Repository" }, "plotly": { "Package": "plotly", @@ -1170,24 +1289,48 @@ "plyr": { "Package": "plyr", "Version": "1.8.9", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "Rcpp" - ], - "Hash": "6b8177fd19982f0020743fadbfdbd933" + "Source": "Repository" }, "png": { "Package": "png", "Version": "0.1-8", "Source": "Repository" }, + "polyclip": { + "Package": "polyclip", + "Version": "1.10-6", + "Source": "Repository" + }, + "prettyunits": { + "Package": "prettyunits", + "Version": "1.2.0", + "Source": "Repository" + }, + "processx": { + "Package": "processx", + "Version": "3.8.4", + "Source": "Repository" + }, + "progress": { + "Package": "progress", + "Version": "1.2.3", + "Source": "Repository" + }, "progressr": { "Package": "progressr", "Version": "0.14.0", "Source": "Repository" }, + "promises": { + "Package": "promises", + "Version": "1.3.0", + "Source": "Repository" + }, + "ps": { + "Package": "ps", + "Version": "1.7.6", + "Source": "Repository" + }, "purrr": { "Package": "purrr", "Version": "1.0.2", @@ -1211,6 +1354,11 @@ "Version": "1.3.0", "Source": "Repository" }, + "rappdirs": { + "Package": "rappdirs", + "Version": "0.3.3", + "Source": "Repository" + }, "readr": { "Package": "readr", "Version": "2.1.5", @@ -1221,6 +1369,16 @@ "Version": "1.4.3", "Source": "Repository" }, + "rematch": { + "Package": "rematch", + "Version": "2.0.0", + "Source": "Repository" + }, + "rematch2": { + "Package": "rematch2", + "Version": "2.1.2", + "Source": "Repository" + }, "renv": { "Package": "renv", "Version": "1.0.7", @@ -1239,15 +1397,7 @@ "reshape2": { "Package": "reshape2", "Version": "1.4.4", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "Rcpp", - "plyr", - "stringr" - ], - "Hash": "bb5996d0bd962d214a11140d77589917" + "Source": "Repository" }, "reticulate": { "Package": "reticulate", @@ -1283,6 +1433,16 @@ "Version": "1.1.3", "Source": "Repository" }, + "rmarkdown": { + "Package": "rmarkdown", + "Version": "2.26", + "Source": "Repository" + }, + "rprojroot": { + "Package": "rprojroot", + "Version": "2.0.4", + "Source": "Repository" + }, "rstudioapi": { "Package": "rstudioapi", "Version": "0.16.0", @@ -1293,6 +1453,11 @@ "Version": "1.0.4", "Source": "Repository" }, + "sass": { + "Package": "sass", + "Version": "0.4.9", + "Source": "Repository" + }, "scales": { "Package": "scales", "Version": "1.3.0", @@ -1330,6 +1495,11 @@ ], "Hash": "1412c4b6dfd8de528e1101e493e66a02" }, + "selectr": { + "Package": "selectr", + "Version": "0.4-2", + "Source": "Repository" + }, "shiny": { "Package": "shiny", "Version": "1.8.1.1", @@ -1338,13 +1508,7 @@ "sitmo": { "Package": "sitmo", "Version": "2.0.2", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "Rcpp" - ], - "Hash": "c956d93f6768a9789edbc13072b70c78" + "Source": "Repository" }, "snow": { "Package": "snow", @@ -1357,6 +1521,21 @@ ], "Hash": "40b74690debd20c57d93d8c246b305d4" }, + "sourcetools": { + "Package": "sourcetools", + "Version": "0.1.7-1", + "Source": "Repository" + }, + "sp": { + "Package": "sp", + "Version": "2.1-3", + "Source": "Repository" + }, + "spam": { + "Package": "spam", + "Version": "2.10-0", + "Source": "Repository" + }, "sparseMatrixStats": { "Package": "sparseMatrixStats", "Version": "1.14.0", @@ -1370,6 +1549,11 @@ ], "Hash": "49383d0f6c6152ff7cb594f254c23cc8" }, + "spatstat.data": { + "Package": "spatstat.data", + "Version": "3.0-4", + "Source": "Repository" + }, "spatstat.explore": { "Package": "spatstat.explore", "Version": "3.2-7", @@ -1380,6 +1564,26 @@ "Version": "3.2-9", "Source": "Repository" }, + "spatstat.random": { + "Package": "spatstat.random", + "Version": "3.2-3", + "Source": "Repository" + }, + "spatstat.sparse": { + "Package": "spatstat.sparse", + "Version": "3.0-3", + "Source": "Repository" + }, + "spatstat.utils": { + "Package": "spatstat.utils", + "Version": "3.0-4", + "Source": "Repository" + }, + "splines": { + "Package": "splines", + "Version": "4.3.3", + "Source": "R" + }, "statmod": { "Package": "statmod", "Version": "1.5.0", @@ -1400,21 +1604,18 @@ "stringi": { "Package": "stringi", "Version": "1.8.3", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "stats", - "tools", - "utils" - ], - "Hash": "058aebddea264f4c99401515182e656a" + "Source": "Repository" }, "stringr": { "Package": "stringr", "Version": "1.5.1", "Source": "Repository" }, + "survival": { + "Package": "survival", + "Version": "3.5-8", + "Source": "Repository" + }, "svMisc": { "Package": "svMisc", "Version": "1.2.3", @@ -1429,6 +1630,26 @@ ], "Hash": "b13f5680860f67c32ccb006ad38f24f4" }, + "sys": { + "Package": "sys", + "Version": "3.4.2", + "Source": "Repository" + }, + "systemfonts": { + "Package": "systemfonts", + "Version": "1.0.6", + "Source": "Repository" + }, + "tensor": { + "Package": "tensor", + "Version": "1.5", + "Source": "Repository" + }, + "textshaping": { + "Package": "textshaping", + "Version": "0.3.7", + "Source": "Repository" + }, "tibble": { "Package": "tibble", "Version": "3.2.1", @@ -1442,18 +1663,22 @@ "tidyselect": { "Package": "tidyselect", "Version": "1.2.1", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "cli", - "glue", - "lifecycle", - "rlang", - "vctrs", - "withr" - ], - "Hash": "829f27b9c4919c16b593794a6344d6c0" + "Source": "Repository" + }, + "tidyverse": { + "Package": "tidyverse", + "Version": "2.0.0", + "Source": "Repository" + }, + "timechange": { + "Package": "timechange", + "Version": "0.3.0", + "Source": "Repository" + }, + "tinytex": { + "Package": "tinytex", + "Version": "0.50", + "Source": "Repository" }, "tools": { "Package": "tools", @@ -1471,21 +1696,26 @@ ], "Hash": "6e9621b0f1bf9398255f32c7000a7e16" }, + "tzdb": { + "Package": "tzdb", + "Version": "0.4.0", + "Source": "Repository" + }, "utf8": { "Package": "utf8", "Version": "1.2.4", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R" - ], - "Hash": "62b65c52671e6665f803ff02954446e9" + "Source": "Repository" }, "utils": { "Package": "utils", "Version": "4.3.3", "Source": "R" }, + "uuid": { + "Package": "uuid", + "Version": "1.2-0", + "Source": "Repository" + }, "uwot": { "Package": "uwot", "Version": "0.2.2", @@ -1494,50 +1724,54 @@ "vctrs": { "Package": "vctrs", "Version": "0.6.5", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "cli", - "glue", - "lifecycle", - "rlang" - ], - "Hash": "c03fa420630029418f7e6da3667aac4a" + "Source": "Repository" }, "viridisLite": { "Package": "viridisLite", "Version": "0.4.2", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R" - ], - "Hash": "c826c7c4241b6fc89ff55aaea3fa7491" + "Source": "Repository" + }, + "vroom": { + "Package": "vroom", + "Version": "1.6.5", + "Source": "Repository" }, "withr": { "Package": "withr", "Version": "3.0.0", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "grDevices", - "graphics" - ], - "Hash": "d31b6c62c10dcf11ec530ca6b0dd5d35" + "Source": "Repository" + }, + "xfun": { + "Package": "xfun", + "Version": "0.43", + "Source": "Repository" }, "xml2": { "Package": "xml2", "Version": "1.3.6", "Source": "Repository" }, + "xtable": { + "Package": "xtable", + "Version": "1.8-4", + "Source": "Repository" + }, + "yaml": { + "Package": "yaml", + "Version": "2.3.8", + "Source": "Repository" + }, "zlibbioc": { "Package": "zlibbioc", "Version": "1.48.2", "Source": "Bioconductor", "Repository": "Bioconductor 3.18", "Hash": "2344be62c2da4d9e9942b5d8db346e59" + }, + "zoo": { + "Package": "zoo", + "Version": "1.8-12", + "Source": "Repository" } } } diff --git a/docker/renv_slim.lock b/docker/renv_slim.lock index 392cbbeb..f17b18b6 100644 --- a/docker/renv_slim.lock +++ b/docker/renv_slim.lock @@ -118,6 +118,11 @@ ], "Hash": "2ecaed86684f5fae76ed5530f9d29c4a" }, + "DBI": { + "Package": "DBI", + "Version": "1.2.2", + "Source": "Repository" + }, "DelayedArray": { "Package": "DelayedArray", "Version": "0.28.0", @@ -270,34 +275,12 @@ "MASS": { "Package": "MASS", "Version": "7.3-60.0.1", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "grDevices", - "graphics", - "methods", - "stats", - "utils" - ], - "Hash": "b765b28387acc8ec9e9c1530713cb19c" + "Source": "Repository" }, "Matrix": { "Package": "Matrix", "Version": "1.6-5", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "grDevices", - "graphics", - "grid", - "lattice", - "methods", - "stats", - "utils" - ], - "Hash": "8c7115cd3a0e048bda2a7cd110549f7a" + "Source": "Repository" }, "MatrixGenerics": { "Package": "MatrixGenerics", @@ -351,22 +334,12 @@ "R6": { "Package": "R6", "Version": "2.5.1", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R" - ], - "Hash": "470851b6d5d0ac559e9d01bb352b4021" + "Source": "Repository" }, "RColorBrewer": { "Package": "RColorBrewer", "Version": "1.1-3", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R" - ], - "Hash": "45f0398006e83a5b10b72a90663d8d8c" + "Source": "Repository" }, "RCurl": { "Package": "RCurl", @@ -532,6 +505,21 @@ ], "Hash": "4f57884290cc75ab22f4af9e9d4ca862" }, + "askpass": { + "Package": "askpass", + "Version": "1.2.0", + "Source": "Repository" + }, + "backports": { + "Package": "backports", + "Version": "1.4.1", + "Source": "Repository" + }, + "base64enc": { + "Package": "base64enc", + "Version": "0.1-3", + "Source": "Repository" + }, "beachmat": { "Package": "beachmat", "Version": "2.18.1", @@ -547,6 +535,16 @@ ], "Hash": "c1c423ca7149d9e7f55d1e609342c2bd" }, + "bit": { + "Package": "bit", + "Version": "4.0.5", + "Source": "Repository" + }, + "bit64": { + "Package": "bit64", + "Version": "4.0.5", + "Source": "Repository" + }, "bitops": { "Package": "bitops", "Version": "1.0-7", @@ -554,6 +552,11 @@ "Repository": "CRAN", "Hash": "b7d8d8ee39869c18d8846a184dd8a1af" }, + "blob": { + "Package": "blob", + "Version": "1.2.4", + "Source": "Repository" + }, "bluster": { "Package": "bluster", "Version": "1.12.0", @@ -578,11 +581,36 @@ "Version": "1.0.5", "Source": "Repository" }, + "bslib": { + "Package": "bslib", + "Version": "0.7.0", + "Source": "Repository" + }, + "cachem": { + "Package": "cachem", + "Version": "1.0.8", + "Source": "Repository" + }, + "callr": { + "Package": "callr", + "Version": "3.7.6", + "Source": "Repository" + }, + "cellranger": { + "Package": "cellranger", + "Version": "1.1.0", + "Source": "Repository" + }, "cli": { "Package": "cli", "Version": "3.6.2", "Source": "Repository" }, + "clipr": { + "Package": "clipr", + "Version": "0.8.0", + "Source": "Repository" + }, "cluster": { "Package": "cluster", "Version": "2.1.6", @@ -610,16 +638,7 @@ "colorspace": { "Package": "colorspace", "Version": "2.1-0", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "grDevices", - "graphics", - "methods", - "stats" - ], - "Hash": "f20c47fd52fae58b4e377c37bb8c335b" + "Source": "Repository" }, "conflicted": { "Package": "conflicted", @@ -629,30 +648,33 @@ "cpp11": { "Package": "cpp11", "Version": "0.4.7", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R" - ], - "Hash": "5a295d7d963cc5035284dcdbaf334f4e" + "Source": "Repository" }, "crayon": { "Package": "crayon", "Version": "1.5.2", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "grDevices", - "methods", - "utils" - ], - "Hash": "e8a1e41acf02548751f45c718d55aa6a" + "Source": "Repository" + }, + "curl": { + "Package": "curl", + "Version": "5.2.1", + "Source": "Repository" + }, + "data.table": { + "Package": "data.table", + "Version": "1.15.4", + "Source": "Repository" }, "dbplyr": { "Package": "dbplyr", "Version": "2.5.0", "Source": "Repository" }, + "digest": { + "Package": "digest", + "Version": "0.6.35", + "Source": "Repository" + }, "dplyr": { "Package": "dplyr", "Version": "1.1.4", @@ -693,24 +715,30 @@ ], "Hash": "a0405c7890708dcb53809d46758800f4" }, + "ellipsis": { + "Package": "ellipsis", + "Version": "0.3.2", + "Source": "Repository" + }, + "evaluate": { + "Package": "evaluate", + "Version": "0.23", + "Source": "Repository" + }, "fansi": { "Package": "fansi", "Version": "1.0.6", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "grDevices", - "utils" - ], - "Hash": "962174cf2aeb5b9eea581522286a911f" + "Source": "Repository" }, "farver": { "Package": "farver", "Version": "2.1.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "8106d78941f34855c440ddb946b8f7a5" + "Source": "Repository" + }, + "fastmap": { + "Package": "fastmap", + "Version": "1.1.1", + "Source": "Repository" }, "fishpond": { "Package": "fishpond", @@ -756,6 +784,11 @@ ], "Hash": "0cb3c4b251c2d3fd5923d3e7e6021ee2" }, + "fontawesome": { + "Package": "fontawesome", + "Version": "0.5.2", + "Source": "Repository" + }, "forcats": { "Package": "forcats", "Version": "1.0.0", @@ -771,6 +804,11 @@ ], "Hash": "63cb26d12517c7863f5abb006c5e0f25" }, + "fs": { + "Package": "fs", + "Version": "1.6.3", + "Source": "Repository" + }, "futile.logger": { "Package": "futile.logger", "Version": "1.4.3", @@ -794,16 +832,15 @@ ], "Hash": "0d9bf02413ddc2bbe8da9ce369dcdd2b" }, + "gargle": { + "Package": "gargle", + "Version": "1.5.2", + "Source": "Repository" + }, "generics": { "Package": "generics", "Version": "0.1.3", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "methods" - ], - "Hash": "15e9634c0fcd294799e9b2e929ed1b86" + "Source": "Repository" }, "getopt": { "Package": "getopt", @@ -818,13 +855,7 @@ "glue": { "Package": "glue", "Version": "1.7.0", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "methods" - ], - "Hash": "e0b3a53876554bd45879e596cdb10a52" + "Source": "Repository" }, "googledrive": { "Package": "googledrive", @@ -836,20 +867,25 @@ "Version": "1.1.1", "Source": "Repository" }, + "grDevices": { + "Package": "grDevices", + "Version": "4.3.3", + "Source": "R" + }, + "graphics": { + "Package": "graphics", + "Version": "4.3.3", + "Source": "R" + }, + "grid": { + "Package": "grid", + "Version": "4.3.3", + "Source": "R" + }, "gtable": { "Package": "gtable", - "Version": "0.3.4", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "cli", - "glue", - "grid", - "lifecycle", - "rlang" - ], - "Hash": "b29cf3031f49b04ab9c852c912547eef" + "Version": "0.3.5", + "Source": "Repository" }, "gtools": { "Package": "gtools", @@ -868,16 +904,31 @@ "Version": "2.5.4", "Source": "Repository" }, + "highr": { + "Package": "highr", + "Version": "0.10", + "Source": "Repository" + }, "hms": { "Package": "hms", "Version": "1.1.3", "Source": "Repository" }, + "htmltools": { + "Package": "htmltools", + "Version": "0.5.8.1", + "Source": "Repository" + }, "httr": { "Package": "httr", "Version": "1.4.7", "Source": "Repository" }, + "ids": { + "Package": "ids", + "Version": "1.0.1", + "Source": "Repository" + }, "igraph": { "Package": "igraph", "Version": "2.0.3", @@ -904,29 +955,27 @@ "isoband": { "Package": "isoband", "Version": "0.2.7", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "grid", - "utils" - ], - "Hash": "0080607b4a1a7b28979aecef976d8bc2" + "Source": "Repository" + }, + "jquerylib": { + "Package": "jquerylib", + "Version": "0.1.4", + "Source": "Repository" }, "jsonlite": { "Package": "jsonlite", "Version": "1.8.8", "Source": "Repository" }, + "knitr": { + "Package": "knitr", + "Version": "1.46", + "Source": "Repository" + }, "labeling": { "Package": "labeling", "Version": "0.4.3", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "graphics", - "stats" - ], - "Hash": "b64ec208ac5bc1852b285f665d6368b3" + "Source": "Repository" }, "lambda.r": { "Package": "lambda.r", @@ -942,30 +991,12 @@ "lattice": { "Package": "lattice", "Version": "0.22-6", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "grDevices", - "graphics", - "grid", - "stats", - "utils" - ], - "Hash": "cc5ac1ba4c238c7ca9fa6a87ca11a7e2" + "Source": "Repository" }, "lifecycle": { "Package": "lifecycle", "Version": "1.0.4", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "cli", - "glue", - "rlang" - ], - "Hash": "b8552d117e1b808b09a832f589b79035" + "Source": "Repository" }, "limma": { "Package": "limma", @@ -1013,6 +1044,11 @@ ], "Hash": "4b3ea27a19d669c0405b38134d89a9d1" }, + "memoise": { + "Package": "memoise", + "Version": "2.0.1", + "Source": "Repository" + }, "methods": { "Package": "methods", "Version": "4.3.3", @@ -1021,19 +1057,7 @@ "mgcv": { "Package": "mgcv", "Version": "1.9-1", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "Matrix", - "R", - "graphics", - "methods", - "nlme", - "splines", - "stats", - "utils" - ], - "Hash": "110ee9d83b496279960e162ac97764ce" + "Source": "Repository" }, "miQC": { "Package": "miQC", @@ -1048,6 +1072,11 @@ ], "Hash": "5d3660451d88509307ce0b0e48748109" }, + "mime": { + "Package": "mime", + "Version": "0.12", + "Source": "Repository" + }, "modelr": { "Package": "modelr", "Version": "0.1.11", @@ -1068,27 +1097,12 @@ "munsell": { "Package": "munsell", "Version": "0.5.1", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "colorspace", - "methods" - ], - "Hash": "4fd8900853b746af55b81fda99da7695" + "Source": "Repository" }, "nlme": { "Package": "nlme", "Version": "3.1-164", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "graphics", - "lattice", - "stats", - "utils" - ], - "Hash": "a623a2239e642806158bc4dc3f51565d" + "Source": "Repository" }, "nnet": { "Package": "nnet", @@ -1102,6 +1116,16 @@ ], "Hash": "2c797b46eea7fb58ede195bc0b1f1138" }, + "openssl": { + "Package": "openssl", + "Version": "2.1.2", + "Source": "Repository" + }, + "optparse": { + "Package": "optparse", + "Version": "1.7.5", + "Source": "Repository" + }, "pillar": { "Package": "pillar", "Version": "1.9.0", @@ -1110,12 +1134,7 @@ "pkgconfig": { "Package": "pkgconfig", "Version": "2.0.3", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "utils" - ], - "Hash": "01f28d4278f15c76cddbea05899c5d6f" + "Source": "Repository" }, "plyr": { "Package": "plyr", @@ -1128,6 +1147,26 @@ ], "Hash": "6b8177fd19982f0020743fadbfdbd933" }, + "prettyunits": { + "Package": "prettyunits", + "Version": "1.2.0", + "Source": "Repository" + }, + "processx": { + "Package": "processx", + "Version": "3.8.4", + "Source": "Repository" + }, + "progress": { + "Package": "progress", + "Version": "1.2.3", + "Source": "Repository" + }, + "ps": { + "Package": "ps", + "Version": "1.7.6", + "Source": "Repository" + }, "purrr": { "Package": "purrr", "Version": "1.0.2", @@ -1151,6 +1190,11 @@ "Version": "1.3.0", "Source": "Repository" }, + "rappdirs": { + "Package": "rappdirs", + "Version": "0.3.3", + "Source": "Repository" + }, "readr": { "Package": "readr", "Version": "2.1.5", @@ -1161,6 +1205,16 @@ "Version": "1.4.3", "Source": "Repository" }, + "rematch": { + "Package": "rematch", + "Version": "2.0.0", + "Source": "Repository" + }, + "rematch2": { + "Package": "rematch2", + "Version": "2.1.2", + "Source": "Repository" + }, "renv": { "Package": "renv", "Version": "1.0.7", @@ -1218,6 +1272,11 @@ "Version": "1.1.3", "Source": "Repository" }, + "rmarkdown": { + "Package": "rmarkdown", + "Version": "2.26", + "Source": "Repository" + }, "rstudioapi": { "Package": "rstudioapi", "Version": "0.16.0", @@ -1228,25 +1287,15 @@ "Version": "1.0.4", "Source": "Repository" }, + "sass": { + "Package": "sass", + "Version": "0.4.9", + "Source": "Repository" + }, "scales": { "Package": "scales", "Version": "1.3.0", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "R6", - "RColorBrewer", - "cli", - "farver", - "glue", - "labeling", - "lifecycle", - "munsell", - "rlang", - "viridisLite" - ], - "Hash": "c19df082ba346b0ffa6f833e92de34d1" + "Source": "Repository" }, "scuttle": { "Package": "scuttle", @@ -1270,6 +1319,11 @@ ], "Hash": "1412c4b6dfd8de528e1101e493e66a02" }, + "selectr": { + "Package": "selectr", + "Version": "0.4-2", + "Source": "Repository" + }, "sitmo": { "Package": "sitmo", "Version": "2.0.2", @@ -1305,6 +1359,11 @@ ], "Hash": "49383d0f6c6152ff7cb594f254c23cc8" }, + "splines": { + "Package": "splines", + "Version": "4.3.3", + "Source": "R" + }, "statmod": { "Package": "statmod", "Version": "1.5.0", @@ -1317,18 +1376,15 @@ ], "Hash": "26e158d12052c279bdd4ba858b80fb1f" }, + "stats": { + "Package": "stats", + "Version": "4.3.3", + "Source": "R" + }, "stringi": { "Package": "stringi", "Version": "1.8.3", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "stats", - "tools", - "utils" - ], - "Hash": "058aebddea264f4c99401515182e656a" + "Source": "Repository" }, "stringr": { "Package": "stringr", @@ -1349,6 +1405,21 @@ ], "Hash": "b13f5680860f67c32ccb006ad38f24f4" }, + "sys": { + "Package": "sys", + "Version": "3.4.2", + "Source": "Repository" + }, + "systemfonts": { + "Package": "systemfonts", + "Version": "1.0.6", + "Source": "Repository" + }, + "textshaping": { + "Package": "textshaping", + "Version": "0.3.7", + "Source": "Repository" + }, "tibble": { "Package": "tibble", "Version": "3.2.1", @@ -1362,18 +1433,27 @@ "tidyselect": { "Package": "tidyselect", "Version": "1.2.1", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "cli", - "glue", - "lifecycle", - "rlang", - "vctrs", - "withr" - ], - "Hash": "829f27b9c4919c16b593794a6344d6c0" + "Source": "Repository" + }, + "tidyverse": { + "Package": "tidyverse", + "Version": "2.0.0", + "Source": "Repository" + }, + "timechange": { + "Package": "timechange", + "Version": "0.3.0", + "Source": "Repository" + }, + "tinytex": { + "Package": "tinytex", + "Version": "0.50", + "Source": "Repository" + }, + "tools": { + "Package": "tools", + "Version": "4.3.3", + "Source": "R" }, "tximport": { "Package": "tximport", @@ -1386,57 +1466,61 @@ ], "Hash": "6e9621b0f1bf9398255f32c7000a7e16" }, + "tzdb": { + "Package": "tzdb", + "Version": "0.4.0", + "Source": "Repository" + }, "utf8": { "Package": "utf8", "Version": "1.2.4", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R" - ], - "Hash": "62b65c52671e6665f803ff02954446e9" + "Source": "Repository" + }, + "utils": { + "Package": "utils", + "Version": "4.3.3", + "Source": "R" + }, + "uuid": { + "Package": "uuid", + "Version": "1.2-0", + "Source": "Repository" }, "vctrs": { "Package": "vctrs", "Version": "0.6.5", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "cli", - "glue", - "lifecycle", - "rlang" - ], - "Hash": "c03fa420630029418f7e6da3667aac4a" + "Source": "Repository" }, "viridisLite": { "Package": "viridisLite", "Version": "0.4.2", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R" - ], - "Hash": "c826c7c4241b6fc89ff55aaea3fa7491" + "Source": "Repository" + }, + "vroom": { + "Package": "vroom", + "Version": "1.6.5", + "Source": "Repository" }, "withr": { "Package": "withr", "Version": "3.0.0", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "grDevices", - "graphics" - ], - "Hash": "d31b6c62c10dcf11ec530ca6b0dd5d35" + "Source": "Repository" + }, + "xfun": { + "Package": "xfun", + "Version": "0.43", + "Source": "Repository" }, "xml2": { "Package": "xml2", "Version": "1.3.6", "Source": "Repository" }, + "yaml": { + "Package": "yaml", + "Version": "2.3.8", + "Source": "Repository" + }, "zlibbioc": { "Package": "zlibbioc", "Version": "1.48.2", diff --git a/docker/renv_zellkonverter.lock b/docker/renv_zellkonverter.lock index 557d5150..9fb8bde3 100644 --- a/docker/renv_zellkonverter.lock +++ b/docker/renv_zellkonverter.lock @@ -42,27 +42,12 @@ "Biobase": { "Package": "Biobase", "Version": "2.62.0", - "Source": "Bioconductor", - "Requirements": [ - "BiocGenerics", - "R", - "methods", - "utils" - ], - "Hash": "38252a34e82d3ff6bb46b4e2252d2dce" + "Source": "Repository" }, "BiocGenerics": { "Package": "BiocGenerics", "Version": "0.48.1", - "Source": "Bioconductor", - "Requirements": [ - "R", - "graphics", - "methods", - "stats", - "utils" - ], - "Hash": "e34278c65d7dffcc08f737bf0944ca9a" + "Source": "Repository" }, "BiocManager": { "Package": "BiocManager", @@ -118,6 +103,11 @@ ], "Hash": "2ecaed86684f5fae76ed5530f9d29c4a" }, + "DBI": { + "Package": "DBI", + "Version": "1.2.2", + "Source": "Repository" + }, "DelayedArray": { "Package": "DelayedArray", "Version": "0.28.0", @@ -172,48 +162,17 @@ "GenomeInfoDb": { "Package": "GenomeInfoDb", "Version": "1.38.8", - "Source": "Bioconductor", - "Repository": "Bioconductor 3.18", - "Requirements": [ - "BiocGenerics", - "GenomeInfoDbData", - "IRanges", - "R", - "RCurl", - "S4Vectors", - "methods", - "stats", - "stats4", - "utils" - ], - "Hash": "155053909d2831bfac154a1118151d6b" + "Source": "Repository" }, "GenomeInfoDbData": { "Package": "GenomeInfoDbData", "Version": "1.2.11", - "Source": "Bioconductor", - "Requirements": [ - "R" - ], - "Hash": "10f32956181d1d46bd8402c93ac193e8" + "Source": "Repository" }, "GenomicRanges": { "Package": "GenomicRanges", "Version": "1.54.1", - "Source": "Bioconductor", - "Requirements": [ - "BiocGenerics", - "GenomeInfoDb", - "IRanges", - "R", - "S4Vectors", - "XVector", - "methods", - "stats", - "stats4", - "utils" - ], - "Hash": "7e0c1399af35369312d9c399454374e8" + "Source": "Repository" }, "HDF5Array": { "Package": "HDF5Array", @@ -241,32 +200,12 @@ "IRanges": { "Package": "IRanges", "Version": "2.36.0", - "Source": "Bioconductor", - "Requirements": [ - "BiocGenerics", - "R", - "S4Vectors", - "methods", - "stats", - "stats4", - "utils" - ], - "Hash": "f98500eeb93e8a66ad65be955a848595" + "Source": "Repository" }, "MASS": { "Package": "MASS", "Version": "7.3-60.0.1", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "grDevices", - "graphics", - "methods", - "stats", - "utils" - ], - "Hash": "b765b28387acc8ec9e9c1530713cb19c" + "Source": "Repository" }, "Matrix": { "Package": "Matrix", @@ -276,12 +215,7 @@ "MatrixGenerics": { "Package": "MatrixGenerics", "Version": "1.14.0", - "Source": "Bioconductor", - "Requirements": [ - "matrixStats", - "methods" - ], - "Hash": "088cd2077b5619fcb7b373b1a45174e7" + "Source": "Repository" }, "R.methodsS3": { "Package": "R.methodsS3", @@ -325,45 +259,22 @@ "R6": { "Package": "R6", "Version": "2.5.1", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R" - ], - "Hash": "470851b6d5d0ac559e9d01bb352b4021" + "Source": "Repository" }, "RColorBrewer": { "Package": "RColorBrewer", "Version": "1.1-3", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R" - ], - "Hash": "45f0398006e83a5b10b72a90663d8d8c" + "Source": "Repository" }, "RCurl": { "Package": "RCurl", "Version": "1.98-1.14", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "bitops", - "methods" - ], - "Hash": "47f648d288079d0c696804ad4e55197e" + "Source": "Repository" }, "Rcpp": { "Package": "Rcpp", "Version": "1.0.12", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "methods", - "utils" - ], - "Hash": "5ea2700d21e038ace58269ecdbeb9ec0" + "Source": "Repository" }, "RcppHNSW": { "Package": "RcppHNSW", @@ -376,6 +287,11 @@ ], "Hash": "1f2dc32c27746a35196aaf95adb357be" }, + "RcppTOML": { + "Package": "RcppTOML", + "Version": "0.2.2", + "Source": "Repository" + }, "Rhdf5lib": { "Package": "Rhdf5lib", "Version": "1.24.2", @@ -389,20 +305,7 @@ "S4Arrays": { "Package": "S4Arrays", "Version": "1.2.1", - "Source": "Bioconductor", - "Repository": "Bioconductor 3.18", - "Requirements": [ - "BiocGenerics", - "IRanges", - "Matrix", - "R", - "S4Vectors", - "abind", - "crayon", - "methods", - "stats" - ], - "Hash": "3213a9826adb8f48e51af1e7b30fa568" + "Source": "Repository" }, "S4Vectors": { "Package": "S4Vectors", @@ -417,22 +320,7 @@ "SparseArray": { "Package": "SparseArray", "Version": "1.2.4", - "Source": "Bioconductor", - "Repository": "Bioconductor 3.18", - "Requirements": [ - "BiocGenerics", - "IRanges", - "Matrix", - "MatrixGenerics", - "R", - "S4Arrays", - "S4Vectors", - "XVector", - "matrixStats", - "methods", - "stats" - ], - "Hash": "391092e7b81373ab624bd6471cebccd4" + "Source": "Repository" }, "SummarizedExperiment": { "Package": "SummarizedExperiment", @@ -442,36 +330,38 @@ "XVector": { "Package": "XVector", "Version": "0.42.0", - "Source": "Bioconductor", - "Requirements": [ - "BiocGenerics", - "IRanges", - "R", - "S4Vectors", - "methods", - "tools", - "utils", - "zlibbioc" - ], - "Hash": "65c0b6bca03f88758f86ef0aa18c4873" + "Source": "Repository" }, "abind": { "Package": "abind", "Version": "1.4-5", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "methods", - "utils" - ], - "Hash": "4f57884290cc75ab22f4af9e9d4ca862" + "Source": "Repository" + }, + "askpass": { + "Package": "askpass", + "Version": "1.2.0", + "Source": "Repository" + }, + "backports": { + "Package": "backports", + "Version": "1.4.1", + "Source": "Repository" + }, + "base64enc": { + "Package": "base64enc", + "Version": "0.1-3", + "Source": "Repository" }, "basilisk": { "Package": "basilisk", "Version": "1.14.3", "Source": "Repository" }, + "basilisk.utils": { + "Package": "basilisk.utils", + "Version": "1.14.1", + "Source": "Repository" + }, "beachmat": { "Package": "beachmat", "Version": "2.18.1", @@ -487,12 +377,25 @@ ], "Hash": "c1c423ca7149d9e7f55d1e609342c2bd" }, + "bit": { + "Package": "bit", + "Version": "4.0.5", + "Source": "Repository" + }, + "bit64": { + "Package": "bit64", + "Version": "4.0.5", + "Source": "Repository" + }, "bitops": { "Package": "bitops", "Version": "1.0-7", - "Source": "Repository", - "Repository": "CRAN", - "Hash": "b7d8d8ee39869c18d8846a184dd8a1af" + "Source": "Repository" + }, + "blob": { + "Package": "blob", + "Version": "1.2.4", + "Source": "Repository" }, "bluster": { "Package": "bluster", @@ -518,11 +421,36 @@ "Version": "1.0.5", "Source": "Repository" }, + "bslib": { + "Package": "bslib", + "Version": "0.7.0", + "Source": "Repository" + }, + "cachem": { + "Package": "cachem", + "Version": "1.0.8", + "Source": "Repository" + }, + "callr": { + "Package": "callr", + "Version": "3.7.6", + "Source": "Repository" + }, + "cellranger": { + "Package": "cellranger", + "Version": "1.1.0", + "Source": "Repository" + }, "cli": { "Package": "cli", "Version": "3.6.2", "Source": "Repository" }, + "clipr": { + "Package": "clipr", + "Version": "0.8.0", + "Source": "Repository" + }, "cluster": { "Package": "cluster", "Version": "2.1.6", @@ -550,16 +478,7 @@ "colorspace": { "Package": "colorspace", "Version": "2.1-0", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "grDevices", - "graphics", - "methods", - "stats" - ], - "Hash": "f20c47fd52fae58b4e377c37bb8c335b" + "Source": "Repository" }, "conflicted": { "Package": "conflicted", @@ -569,30 +488,38 @@ "cpp11": { "Package": "cpp11", "Version": "0.4.7", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R" - ], - "Hash": "5a295d7d963cc5035284dcdbaf334f4e" + "Source": "Repository" }, "crayon": { "Package": "crayon", "Version": "1.5.2", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "grDevices", - "methods", - "utils" - ], - "Hash": "e8a1e41acf02548751f45c718d55aa6a" + "Source": "Repository" + }, + "curl": { + "Package": "curl", + "Version": "5.2.1", + "Source": "Repository" + }, + "data.table": { + "Package": "data.table", + "Version": "1.15.4", + "Source": "Repository" }, "dbplyr": { "Package": "dbplyr", "Version": "2.5.0", "Source": "Repository" }, + "digest": { + "Package": "digest", + "Version": "0.6.35", + "Source": "Repository" + }, + "dir.expiry": { + "Package": "dir.expiry", + "Version": "1.10.0", + "Source": "Repository" + }, "dplyr": { "Package": "dplyr", "Version": "1.1.4", @@ -633,24 +560,35 @@ ], "Hash": "a0405c7890708dcb53809d46758800f4" }, + "ellipsis": { + "Package": "ellipsis", + "Version": "0.3.2", + "Source": "Repository" + }, + "evaluate": { + "Package": "evaluate", + "Version": "0.23", + "Source": "Repository" + }, "fansi": { "Package": "fansi", "Version": "1.0.6", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "grDevices", - "utils" - ], - "Hash": "962174cf2aeb5b9eea581522286a911f" + "Source": "Repository" }, "farver": { "Package": "farver", "Version": "2.1.1", - "Source": "Repository", - "Repository": "RSPM", - "Hash": "8106d78941f34855c440ddb946b8f7a5" + "Source": "Repository" + }, + "fastmap": { + "Package": "fastmap", + "Version": "1.1.1", + "Source": "Repository" + }, + "filelock": { + "Package": "filelock", + "Version": "1.0.3", + "Source": "Repository" }, "fishpond": { "Package": "fishpond", @@ -696,6 +634,11 @@ ], "Hash": "0cb3c4b251c2d3fd5923d3e7e6021ee2" }, + "fontawesome": { + "Package": "fontawesome", + "Version": "0.5.2", + "Source": "Repository" + }, "forcats": { "Package": "forcats", "Version": "1.0.0", @@ -711,6 +654,11 @@ ], "Hash": "63cb26d12517c7863f5abb006c5e0f25" }, + "fs": { + "Package": "fs", + "Version": "1.6.3", + "Source": "Repository" + }, "futile.logger": { "Package": "futile.logger", "Version": "1.4.3", @@ -734,16 +682,15 @@ ], "Hash": "0d9bf02413ddc2bbe8da9ce369dcdd2b" }, + "gargle": { + "Package": "gargle", + "Version": "1.5.2", + "Source": "Repository" + }, "generics": { "Package": "generics", "Version": "0.1.3", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "methods" - ], - "Hash": "15e9634c0fcd294799e9b2e929ed1b86" + "Source": "Repository" }, "getopt": { "Package": "getopt", @@ -758,13 +705,7 @@ "glue": { "Package": "glue", "Version": "1.7.0", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "methods" - ], - "Hash": "e0b3a53876554bd45879e596cdb10a52" + "Source": "Repository" }, "googledrive": { "Package": "googledrive", @@ -776,20 +717,25 @@ "Version": "1.1.1", "Source": "Repository" }, + "grDevices": { + "Package": "grDevices", + "Version": "4.3.3", + "Source": "R" + }, + "graphics": { + "Package": "graphics", + "Version": "4.3.3", + "Source": "R" + }, + "grid": { + "Package": "grid", + "Version": "4.3.3", + "Source": "R" + }, "gtable": { "Package": "gtable", - "Version": "0.3.4", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "cli", - "glue", - "grid", - "lifecycle", - "rlang" - ], - "Hash": "b29cf3031f49b04ab9c852c912547eef" + "Version": "0.3.5", + "Source": "Repository" }, "gtools": { "Package": "gtools", @@ -808,16 +754,36 @@ "Version": "2.5.4", "Source": "Repository" }, + "here": { + "Package": "here", + "Version": "1.0.1", + "Source": "Repository" + }, + "highr": { + "Package": "highr", + "Version": "0.10", + "Source": "Repository" + }, "hms": { "Package": "hms", "Version": "1.1.3", "Source": "Repository" }, + "htmltools": { + "Package": "htmltools", + "Version": "0.5.8.1", + "Source": "Repository" + }, "httr": { "Package": "httr", "Version": "1.4.7", "Source": "Repository" }, + "ids": { + "Package": "ids", + "Version": "1.0.1", + "Source": "Repository" + }, "igraph": { "Package": "igraph", "Version": "2.0.3", @@ -844,29 +810,27 @@ "isoband": { "Package": "isoband", "Version": "0.2.7", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "grid", - "utils" - ], - "Hash": "0080607b4a1a7b28979aecef976d8bc2" + "Source": "Repository" + }, + "jquerylib": { + "Package": "jquerylib", + "Version": "0.1.4", + "Source": "Repository" }, "jsonlite": { "Package": "jsonlite", "Version": "1.8.8", "Source": "Repository" }, + "knitr": { + "Package": "knitr", + "Version": "1.46", + "Source": "Repository" + }, "labeling": { "Package": "labeling", "Version": "0.4.3", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "graphics", - "stats" - ], - "Hash": "b64ec208ac5bc1852b285f665d6368b3" + "Source": "Repository" }, "lambda.r": { "Package": "lambda.r", @@ -882,30 +846,12 @@ "lattice": { "Package": "lattice", "Version": "0.22-6", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "grDevices", - "graphics", - "grid", - "stats", - "utils" - ], - "Hash": "cc5ac1ba4c238c7ca9fa6a87ca11a7e2" + "Source": "Repository" }, "lifecycle": { "Package": "lifecycle", "Version": "1.0.4", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "cli", - "glue", - "rlang" - ], - "Hash": "b8552d117e1b808b09a832f589b79035" + "Source": "Repository" }, "limma": { "Package": "limma", @@ -946,12 +892,12 @@ "matrixStats": { "Package": "matrixStats", "Version": "1.3.0", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R" - ], - "Hash": "4b3ea27a19d669c0405b38134d89a9d1" + "Source": "Repository" + }, + "memoise": { + "Package": "memoise", + "Version": "2.0.1", + "Source": "Repository" }, "methods": { "Package": "methods", @@ -961,19 +907,7 @@ "mgcv": { "Package": "mgcv", "Version": "1.9-1", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "Matrix", - "R", - "graphics", - "methods", - "nlme", - "splines", - "stats", - "utils" - ], - "Hash": "110ee9d83b496279960e162ac97764ce" + "Source": "Repository" }, "miQC": { "Package": "miQC", @@ -988,6 +922,11 @@ ], "Hash": "5d3660451d88509307ce0b0e48748109" }, + "mime": { + "Package": "mime", + "Version": "0.12", + "Source": "Repository" + }, "modelr": { "Package": "modelr", "Version": "0.1.11", @@ -1008,27 +947,12 @@ "munsell": { "Package": "munsell", "Version": "0.5.1", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "colorspace", - "methods" - ], - "Hash": "4fd8900853b746af55b81fda99da7695" + "Source": "Repository" }, "nlme": { "Package": "nlme", "Version": "3.1-164", - "Source": "Repository", - "Repository": "CRAN", - "Requirements": [ - "R", - "graphics", - "lattice", - "stats", - "utils" - ], - "Hash": "a623a2239e642806158bc4dc3f51565d" + "Source": "Repository" }, "nnet": { "Package": "nnet", @@ -1042,6 +966,21 @@ ], "Hash": "2c797b46eea7fb58ede195bc0b1f1138" }, + "openssl": { + "Package": "openssl", + "Version": "2.1.2", + "Source": "Repository" + }, + "optparse": { + "Package": "optparse", + "Version": "1.7.5", + "Source": "Repository" + }, + "parallel": { + "Package": "parallel", + "Version": "4.3.3", + "Source": "R" + }, "pillar": { "Package": "pillar", "Version": "1.9.0", @@ -1050,12 +989,7 @@ "pkgconfig": { "Package": "pkgconfig", "Version": "2.0.3", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "utils" - ], - "Hash": "01f28d4278f15c76cddbea05899c5d6f" + "Source": "Repository" }, "plyr": { "Package": "plyr", @@ -1068,6 +1002,31 @@ ], "Hash": "6b8177fd19982f0020743fadbfdbd933" }, + "png": { + "Package": "png", + "Version": "0.1-8", + "Source": "Repository" + }, + "prettyunits": { + "Package": "prettyunits", + "Version": "1.2.0", + "Source": "Repository" + }, + "processx": { + "Package": "processx", + "Version": "3.8.4", + "Source": "Repository" + }, + "progress": { + "Package": "progress", + "Version": "1.2.3", + "Source": "Repository" + }, + "ps": { + "Package": "ps", + "Version": "1.7.6", + "Source": "Repository" + }, "purrr": { "Package": "purrr", "Version": "1.0.2", @@ -1091,6 +1050,11 @@ "Version": "1.3.0", "Source": "Repository" }, + "rappdirs": { + "Package": "rappdirs", + "Version": "0.3.3", + "Source": "Repository" + }, "readr": { "Package": "readr", "Version": "2.1.5", @@ -1101,6 +1065,16 @@ "Version": "1.4.3", "Source": "Repository" }, + "rematch": { + "Package": "rematch", + "Version": "2.0.0", + "Source": "Repository" + }, + "rematch2": { + "Package": "rematch2", + "Version": "2.1.2", + "Source": "Repository" + }, "renv": { "Package": "renv", "Version": "1.0.7", @@ -1163,6 +1137,16 @@ "Version": "1.1.3", "Source": "Repository" }, + "rmarkdown": { + "Package": "rmarkdown", + "Version": "2.26", + "Source": "Repository" + }, + "rprojroot": { + "Package": "rprojroot", + "Version": "2.0.4", + "Source": "Repository" + }, "rstudioapi": { "Package": "rstudioapi", "Version": "0.16.0", @@ -1173,25 +1157,15 @@ "Version": "1.0.4", "Source": "Repository" }, + "sass": { + "Package": "sass", + "Version": "0.4.9", + "Source": "Repository" + }, "scales": { "Package": "scales", "Version": "1.3.0", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "R6", - "RColorBrewer", - "cli", - "farver", - "glue", - "labeling", - "lifecycle", - "munsell", - "rlang", - "viridisLite" - ], - "Hash": "c19df082ba346b0ffa6f833e92de34d1" + "Source": "Repository" }, "scuttle": { "Package": "scuttle", @@ -1215,6 +1189,11 @@ ], "Hash": "1412c4b6dfd8de528e1101e493e66a02" }, + "selectr": { + "Package": "selectr", + "Version": "0.4-2", + "Source": "Repository" + }, "sitmo": { "Package": "sitmo", "Version": "2.0.2", @@ -1250,6 +1229,11 @@ ], "Hash": "49383d0f6c6152ff7cb594f254c23cc8" }, + "splines": { + "Package": "splines", + "Version": "4.3.3", + "Source": "R" + }, "statmod": { "Package": "statmod", "Version": "1.5.0", @@ -1262,18 +1246,20 @@ ], "Hash": "26e158d12052c279bdd4ba858b80fb1f" }, + "stats": { + "Package": "stats", + "Version": "4.3.3", + "Source": "R" + }, + "stats4": { + "Package": "stats4", + "Version": "4.3.3", + "Source": "R" + }, "stringi": { "Package": "stringi", "Version": "1.8.3", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "stats", - "tools", - "utils" - ], - "Hash": "058aebddea264f4c99401515182e656a" + "Source": "Repository" }, "stringr": { "Package": "stringr", @@ -1294,6 +1280,21 @@ ], "Hash": "b13f5680860f67c32ccb006ad38f24f4" }, + "sys": { + "Package": "sys", + "Version": "3.4.2", + "Source": "Repository" + }, + "systemfonts": { + "Package": "systemfonts", + "Version": "1.0.6", + "Source": "Repository" + }, + "textshaping": { + "Package": "textshaping", + "Version": "0.3.7", + "Source": "Repository" + }, "tibble": { "Package": "tibble", "Version": "3.2.1", @@ -1307,18 +1308,27 @@ "tidyselect": { "Package": "tidyselect", "Version": "1.2.1", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "cli", - "glue", - "lifecycle", - "rlang", - "vctrs", - "withr" - ], - "Hash": "829f27b9c4919c16b593794a6344d6c0" + "Source": "Repository" + }, + "tidyverse": { + "Package": "tidyverse", + "Version": "2.0.0", + "Source": "Repository" + }, + "timechange": { + "Package": "timechange", + "Version": "0.3.0", + "Source": "Repository" + }, + "tinytex": { + "Package": "tinytex", + "Version": "0.50", + "Source": "Repository" + }, + "tools": { + "Package": "tools", + "Version": "4.3.3", + "Source": "R" }, "tximport": { "Package": "tximport", @@ -1331,68 +1341,70 @@ ], "Hash": "6e9621b0f1bf9398255f32c7000a7e16" }, + "tzdb": { + "Package": "tzdb", + "Version": "0.4.0", + "Source": "Repository" + }, "utf8": { "Package": "utf8", "Version": "1.2.4", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R" - ], - "Hash": "62b65c52671e6665f803ff02954446e9" + "Source": "Repository" }, "utils": { "Package": "utils", "Version": "4.3.3", "Source": "R" }, + "uuid": { + "Package": "uuid", + "Version": "1.2-0", + "Source": "Repository" + }, "vctrs": { "Package": "vctrs", "Version": "0.6.5", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "cli", - "glue", - "lifecycle", - "rlang" - ], - "Hash": "c03fa420630029418f7e6da3667aac4a" + "Source": "Repository" }, "viridisLite": { "Package": "viridisLite", "Version": "0.4.2", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R" - ], - "Hash": "c826c7c4241b6fc89ff55aaea3fa7491" + "Source": "Repository" + }, + "vroom": { + "Package": "vroom", + "Version": "1.6.5", + "Source": "Repository" }, "withr": { "Package": "withr", "Version": "3.0.0", - "Source": "Repository", - "Repository": "RSPM", - "Requirements": [ - "R", - "grDevices", - "graphics" - ], - "Hash": "d31b6c62c10dcf11ec530ca6b0dd5d35" + "Source": "Repository" + }, + "xfun": { + "Package": "xfun", + "Version": "0.43", + "Source": "Repository" }, "xml2": { "Package": "xml2", "Version": "1.3.6", "Source": "Repository" }, + "yaml": { + "Package": "yaml", + "Version": "2.3.8", + "Source": "Repository" + }, + "zellkonverter": { + "Package": "zellkonverter", + "Version": "1.12.1", + "Source": "Repository" + }, "zlibbioc": { "Package": "zlibbioc", "Version": "1.48.2", - "Source": "Bioconductor", - "Repository": "Bioconductor 3.18", - "Hash": "2344be62c2da4d9e9942b5d8db346e59" + "Source": "Repository" } } } diff --git a/docker/scripts/make-lockfile.R b/docker/scripts/make-lockfile.R index 419102c4..b2262014 100644 --- a/docker/scripts/make-lockfile.R +++ b/docker/scripts/make-lockfile.R @@ -47,9 +47,12 @@ renv::snapshot(lockfile = opts$lockfile, type = "explicit") # additional dependencies for added packages added_packages <- opts$packages |> stringr::str_split_1("[,;\\s]+") |> - c("tidyverse", "optparse") |> # always include tidyverse and optparse - tools::package_dependencies() |> + stringr::str_subset(".+") |> # remove empty strings + c("tidyverse", "optparse") # always include tidyverse and optparse +all_packages <- added_packages |> + tools::package_dependencies(recursive = TRUE) |> unlist() |> - unique() + unique() |> + c(added_packages) -renv::record(added_packages, lockfile = opts$lockfile) +renv::record(all_packages, lockfile = opts$lockfile) From 8a34ecb157f0d33129613f719f2b936d760101b9 Mon Sep 17 00:00:00 2001 From: Joshua Shapiro Date: Wed, 24 Apr 2024 09:27:09 -0400 Subject: [PATCH 25/28] clean conda installs --- docker/Dockerfile | 3 ++- docker/scpcatools_anndata.Dockerfile | 3 ++- docker/scpcatools_scvi.Dockerfile | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/docker/Dockerfile b/docker/Dockerfile index 83562249..518d6eff 100644 --- a/docker/Dockerfile +++ b/docker/Dockerfile @@ -18,7 +18,8 @@ RUN Rscript -e "renv::restore()" && \ # Complete installation of zellkonverter conda env ENV BASILISK_EXTERNAL_DIR /usr/local/renv/basilisk RUN Rscript -e "proc <- basilisk::basiliskStart(env = zellkonverter::zellkonverterAnnDataEnv(), testload = 'anndata'); \ - basilisk::basiliskStop(proc)" + basilisk::basiliskStop(proc); \ + basilisk.utils::cleanConda()" #### Python packages COPY requirements.txt requirements.txt diff --git a/docker/scpcatools_anndata.Dockerfile b/docker/scpcatools_anndata.Dockerfile index 5ab22371..fbb14f23 100644 --- a/docker/scpcatools_anndata.Dockerfile +++ b/docker/scpcatools_anndata.Dockerfile @@ -19,7 +19,8 @@ RUN Rscript -e "renv::restore()" && \ # Complete installation of zellkonverter conda env ENV BASILISK_EXTERNAL_DIR /usr/local/renv/basilisk RUN Rscript -e "proc <- basilisk::basiliskStart(env = zellkonverter::zellkonverterAnnDataEnv(), testload = 'anndata'); \ - basilisk::basiliskStop(proc)" + basilisk::basiliskStop(proc); \ + basilisk.utils::cleanConda()" #### Python packages COPY requirements_anndata.txt requirements.txt diff --git a/docker/scpcatools_scvi.Dockerfile b/docker/scpcatools_scvi.Dockerfile index 14605cc7..e82aaa9c 100644 --- a/docker/scpcatools_scvi.Dockerfile +++ b/docker/scpcatools_scvi.Dockerfile @@ -19,7 +19,8 @@ RUN Rscript -e "renv::restore()" && \ # Complete installation of zellkonverter conda env ENV BASILISK_EXTERNAL_DIR /usr/local/renv/basilisk RUN Rscript -e "proc <- basilisk::basiliskStart(env = zellkonverter::zellkonverterAnnDataEnv(), testload = 'anndata'); \ - basilisk::basiliskStop(proc)" + basilisk::basiliskStop(proc); \ + basilisk.utils::cleanConda()" #### Python packages COPY requirements_scvi.txt requirements.txt From eb88cc576ec3a01e72437a6388dec496be1ea6a2 Mon Sep 17 00:00:00 2001 From: Joshua Shapiro Date: Wed, 24 Apr 2024 12:56:00 -0400 Subject: [PATCH 26/28] Add scater and scran --- docker/scripts/make-lockfile.R | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker/scripts/make-lockfile.R b/docker/scripts/make-lockfile.R index b2262014..9209a86a 100644 --- a/docker/scripts/make-lockfile.R +++ b/docker/scripts/make-lockfile.R @@ -48,7 +48,7 @@ renv::snapshot(lockfile = opts$lockfile, type = "explicit") added_packages <- opts$packages |> stringr::str_split_1("[,;\\s]+") |> stringr::str_subset(".+") |> # remove empty strings - c("tidyverse", "optparse") # always include tidyverse and optparse + c("optparse", "scater", "scran", "tidyverse") # always include these all_packages <- added_packages |> tools::package_dependencies(recursive = TRUE) |> unlist() |> From 4415cad576bd952ca5d46ecb3b3ae03136b9bd11 Mon Sep 17 00:00:00 2001 From: Joshua Shapiro Date: Wed, 24 Apr 2024 13:06:00 -0400 Subject: [PATCH 27/28] Add more docs about dockerfiles --- .github/workflows/build-docker.yaml | 2 -- docker/README.md | 17 +++++++++++------ 2 files changed, 11 insertions(+), 8 deletions(-) diff --git a/.github/workflows/build-docker.yaml b/.github/workflows/build-docker.yaml index 27be53a2..b425414a 100644 --- a/.github/workflows/build-docker.yaml +++ b/.github/workflows/build-docker.yaml @@ -30,8 +30,6 @@ jobs: dockerfile: scpcatools_slim.Dockerfile - image_name: scpcatools-reports dockerfile: scpcatools_reports.Dockerfile - - image_name: scpcatools-anndata - dockerfile: scpcatools_anndata.Dockerfile - image_name: scpcatools-scvi dockerfile: scpcatools_scvi.Dockerfile - image_name: scpcatools-seurat diff --git a/docker/README.md b/docker/README.md index 377cf121..16e3ddf4 100644 --- a/docker/README.md +++ b/docker/README.md @@ -19,15 +19,20 @@ The main image includes all of the recommended packages for `scpcaTools` (aside There are also smaller images that can be built, which include only the R packages required for `scpcaTools`, with particular additions for specific purposes. These include: - `scpcatools_slim.Dockerfile`: A smaller image that includes only the required R packages for `scpcaTools`, with no additional packages. -- `scpcatools_anndata.Dockerfile`: The slim package with the addition of the `zellkonverter` package for reading and writing `AnnData` objects, and the Python `anndata` package. +- `scpcatools_scvi.Dockerfile`: The slim package with the addition of the `zellkonverter` package for reading and writing `AnnData` objects, and the Python `anndata` and `scvi` packages. +- `scpcatools_reports.Dockerfile`: The slim package with the addition `rmarkdown` and `ComplexHeatmap` and associated packages for generating reports. +- `scpcatools_seurat.Dockerfile`: The slim package with the addition `Seurat`. -These images are built automatically on every update to `scpcaTools` (`main`) and pushed to `ghcr.io/alexslemonade/scpcatools:edge-slim` and `ghcr.io/alexslemonade/scpcatools:edge-anndata`, respectively. +These images are built automatically on every update to `scpcaTools` (`main`) and pushed to `ghcr.io/alexslemonade/scpcatool-slims:edge` and `ghcr.io/alexslemonade/scpcatools-scvi:edge`, etc. -## Setting R and Python dependencies +## Generating R and Python dependency files -Dependency lock files are built using the `make-requirements.sh` script. +Dependency lock files, with the exception of `renv.lock`, are built using the `make-requirements.sh` script. This script depends on `pip-tools` and should be run using Python 3.10 to match the default version of Python in the Docker images. For convenience, a conda `environment.yml` file is included in this directory that can be used to create an `scpcatools-dev` environment with the necessary Python version and packages. -This script will generate the `requirements.txt` and `renv.lock` files for each set of Python packages to be installed within the various Docker images. -These are based on `requirements.in` files that specify the high-level package requirements for each image. +This script will generate the `requirements_*.txt` and `renv_*.lock` files for each set of Python packages to be installed within the various Docker images. +- The requirements files are based on `requirements_*.in` files that specify the high-level package requirements for each image. +- The `renv_*.lock` files are strict subsets of the main `renv.lock` file that is use for development and for the full image. + - The main `renv.lock` file should be updated manually using `renv::snapshot()` from within the `scpcaTools` project. + - After updating `renv.lock`, the `make-requirements.sh` script should be run to update the `renv_*.lock` files. From cd9684300704eeaf8b3bed7c1fa16bc69b4b0839 Mon Sep 17 00:00:00 2001 From: Joshua Shapiro Date: Wed, 24 Apr 2024 13:25:01 -0400 Subject: [PATCH 28/28] script comment updates --- docker/make-requirements.sh | 2 +- docker/scripts/make-lockfile.R | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/docker/make-requirements.sh b/docker/make-requirements.sh index 5085d8a9..5e5c24a3 100644 --- a/docker/make-requirements.sh +++ b/docker/make-requirements.sh @@ -1,6 +1,6 @@ #!/bin/bash set -euo pipefail -# This script is used to generate requirements files for R and Python packages +# This script is used to generate or update requirements/lock files for R and Python packages # Requires that the `pip-tools` python package is installed. # Before running, make sure that the renv.lock file and installed libaries are # consistent with renv::snapshot() or renv::restore() diff --git a/docker/scripts/make-lockfile.R b/docker/scripts/make-lockfile.R index 9209a86a..5d27f1d6 100644 --- a/docker/scripts/make-lockfile.R +++ b/docker/scripts/make-lockfile.R @@ -1,9 +1,11 @@ #!/usr/bin/env Rscript -# This script is used to make a lockfile based on the current renv environment, +# This script is used to create or update a lockfile based on the current renv environment, # including scpcaTools dependencies and any additional packages specified by the user. # This means that it does _not_ look at what files are used by scripts in the project, except # for the package DESCRIPTION file. +# The main `renv.lock` file is not updated by this script, but must be up to date with the +# current environment before running this script. library(optparse)