diff --git a/.github/workflows/docker_all-modules.yml b/.github/workflows/docker_all-modules.yml index 6c93a8dfd..0f1a45fc0 100644 --- a/.github/workflows/docker_all-modules.yml +++ b/.github/workflows/docker_all-modules.yml @@ -38,6 +38,7 @@ jobs: - simulate-sce - cell-type-ewings - doublet-detection + - cell-type-wilms-tumor-06 uses: ./.github/workflows/build-push-docker-module.yml if: github.repository_owner == 'AlexsLemonade' with: diff --git a/.github/workflows/docker_cell-type-wilms-tumor-06.yml b/.github/workflows/docker_cell-type-wilms-tumor-06.yml new file mode 100644 index 000000000..e4ba2a78a --- /dev/null +++ b/.github/workflows/docker_cell-type-wilms-tumor-06.yml @@ -0,0 +1,55 @@ +# This is a workflow to build the docker image for the cell-type-wilms-tumor-06 module +# +# Docker modules are run on pull requests when code for files that affect the Docker image have changed. +# If other files are used during the Docker build, they should be added to `paths` +# +# At module initialization, this workflow is inactive, and needs to be activated manually + +name: Build docker image for cell-type-wilms-tumor-06 + +concurrency: + # only one run per branch at a time + group: "docker_cell-type-wilms-tumor-06_${{ github.ref }}" + cancel-in-progress: true + +on: + pull_request: + branches: + - main + paths: + - "analyses/cell-type-wilms-tumor-06/Dockerfile" + - "analyses/cell-type-wilms-tumor-06/.dockerignore" + - "analyses/cell-type-wilms-tumor-06/renv.lock" + - "analyses/cell-type-wilms-tumor-06/conda-lock.yml" + workflow_dispatch: + inputs: + push-ecr: + description: "Push to AWS ECR" + type: boolean + required: true + +jobs: + test-build: + name: Test Build Docker Image + if: github.event_name == 'pull_request' || (contains(github.event_name, 'workflow_') && !inputs.push-ecr) + runs-on: ubuntu-latest + + steps: + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v3 + + - name: Build image + uses: docker/build-push-action@v5 + with: + context: "{{defaultContext}}:analyses/cell-type-wilms-tumor-06" + push: false + cache-from: type=gha + cache-to: type=gha,mode=max + + build-push: + name: Build and Push Docker Image + if: github.repository_owner == 'AlexsLemonade' && (github.event_name == 'push' || inputs.push-ecr) + uses: ./.github/workflows/build-push-docker-module.yml + with: + module: "cell-type-wilms-tumor-06" + push-ecr: true diff --git a/.github/workflows/run_cell-type-wilms-tumor-06.yml b/.github/workflows/run_cell-type-wilms-tumor-06.yml new file mode 100644 index 000000000..a79b02314 --- /dev/null +++ b/.github/workflows/run_cell-type-wilms-tumor-06.yml @@ -0,0 +1,59 @@ +# This is a workflow to run the cell-type-wilms-tumor-06 module +# +# Analysis modules are run based on three triggers: +# - Manual trigger +# - On pull requests where code in the module has changed +# - As a reusable workflow called from a separate workflow which periodically runs all modules +# +# At initialization, only the manual trigger is active + +name: Run cell-type-wilms-tumor-06 analysis module +env: + MODULE_PATH: analyses/cell-type-wilms-tumor-06 + AWS_DEFAULT_REGION: us-east-2 + +concurrency: + # only one run per branch at a time + group: "run_cell-type-wilms-tumor-06_${{ github.ref }}" + cancel-in-progress: true + +on: + workflow_dispatch: + # workflow_call: + # pull_request: + # branches: + # - main + # paths: + # - "analyses/cell-type-wilms-tumor-06/**" + +jobs: + run-module: + if: github.repository_owner == 'AlexsLemonade' + runs-on: ubuntu-latest + + steps: + - name: Checkout repo + uses: actions/checkout@v4 + + - name: Set up R + uses: r-lib/actions/setup-r@v2 + with: + r-version: 4.4.0 + use-public-rspm: true + + - name: Set up pandoc + uses: r-lib/actions/setup-pandoc@v2 + + - name: Set up renv + uses: r-lib/actions/setup-renv@v2 + with: + working-directory: ${{ env.MODULE_PATH }} + + # Update this step as needed to download the desired data + - name: Download test data + run: ./download-data.py --test-data --format SCE + + - name: Run analysis module + run: | + cd ${MODULE_PATH} + # run module script(s) here diff --git a/analyses/cell-type-wilms-tumor-06/.Rprofile b/analyses/cell-type-wilms-tumor-06/.Rprofile new file mode 100644 index 000000000..45301dbc7 --- /dev/null +++ b/analyses/cell-type-wilms-tumor-06/.Rprofile @@ -0,0 +1,4 @@ +# Don't activate renv in an OpenScPCA docker image +if(Sys.getenv('OPENSCPCA_DOCKER') != 'TRUE'){ + source('renv/activate.R') +} diff --git a/analyses/cell-type-wilms-tumor-06/.dockerignore b/analyses/cell-type-wilms-tumor-06/.dockerignore new file mode 100644 index 000000000..23c79ccae --- /dev/null +++ b/analyses/cell-type-wilms-tumor-06/.dockerignore @@ -0,0 +1,8 @@ +# Ignore everything by default +* + +# Include specific files in the docker environment +!/renv.lock +!/requirements.txt +!/environment.yml +!/conda-lock.yml diff --git a/analyses/cell-type-wilms-tumor-06/.gitignore b/analyses/cell-type-wilms-tumor-06/.gitignore new file mode 100644 index 000000000..7ceb4d3e6 --- /dev/null +++ b/analyses/cell-type-wilms-tumor-06/.gitignore @@ -0,0 +1,11 @@ +# Results should not be committed +/results/* +!/results/README.md + +# Ignore the scratch directory (but keep it present) +/scratch/* +!/scratch/.gitkeep + +# Ignore Docker-related files specific to module author's system +config.yaml +run.sh diff --git a/analyses/cell-type-wilms-tumor-06/Dockerfile b/analyses/cell-type-wilms-tumor-06/Dockerfile new file mode 100644 index 000000000..a32686327 --- /dev/null +++ b/analyses/cell-type-wilms-tumor-06/Dockerfile @@ -0,0 +1,28 @@ +# Pull base image +# This image has RStudio Server on it +FROM bioconductor/bioconductor_docker:3.19 + +# Labels following the Open Containers Initiative (OCI) recommendations +# For more information, see https://specs.opencontainers.org/image-spec/annotations/?v=v1.0.1 +LABEL org.opencontainers.image.title="openscpca/cell-type-wilms-tumor-06" +LABEL org.opencontainers.image.description="Docker image for the OpenScPCA analysis module 'cell-type-wilms-tumor-06'" +LABEL org.opencontainers.image.authors="OpenScPCA scpca@ccdatalab.org" +LABEL org.opencontainers.image.source="https://github.com/AlexsLemonade/OpenScPCA-analysis/tree/main/analyses/cell-type-wilms-tumor-06" + +# Set an environment variable to allow checking if we are in an OpenScPCA container +ENV OPENSCPCA_DOCKER=TRUE + +# Disable the renv cache to install packages directly into the R library +ENV RENV_CONFIG_CACHE_ENABLED=FALSE + +# Install renv +RUN R --no-echo --no-restore --no-save -e "install.packages('renv')" + +# Copy the renv.lock file from the host environment to the image +COPY renv.lock renv.lock + +# restore from renv.lock file and clean up to reduce image size +RUN Rscript -e 'renv::restore()' && \ + rm -rf ~/.cache/R/renv && \ + rm -rf /tmp/downloaded_packages && \ + rm -rf /tmp/Rtmp* diff --git a/analyses/cell-type-wilms-tumor-06/README.md b/analyses/cell-type-wilms-tumor-06/README.md new file mode 100644 index 000000000..1243fc25a --- /dev/null +++ b/analyses/cell-type-wilms-tumor-06/README.md @@ -0,0 +1,180 @@ +# Wilms Tumor Dataset Annotation (SCPCP000006) + +Wilms tumor (WT) is the most common pediatric kidney cancer characterized by an exacerbated intra- and inter- tumor heterogeneity. +The genetic landscape of WT is very diverse in each of the histological contingents. +The COG classifies WT patients into two groups: the favorable histology and diffuse anaplasia. +Each of these groups is composed of the blastemal, epithelial, and stromal populations of cancer cells in different proportions, as well as cells from the normal kidney, mostly kidney epithelial cells, endothelial cells, immune cells and normal stromal cells (fibroblast). + +## Description + +Here, we first aim to annotate the Wilms Tumor snRNA-seq samples in the SCPCP000006 (n=40) dataset. To do so we will: + +• Provide annotations of normal cells composing the kidney, including normal kidney epithelium, endothelium, stroma and immune cells +• Provide annotations of tumor cell populations that may be present in the WT samples, including blastemal, epithelial, and stromal populations of cancer cells +Based on the provided annotation, we would like to additionally provide a reference of marker genes for the three cancer cell populations, which is so far lacking for the WT community. + +The analysis is/will be divided as the following: + +- [x] Metadata file: compilation of a metadata file of marker genes for expected cell types that will be used for validation at a later step +- [ ] Script: clustering of cells across a set of parameters for few samples +- [ ] Script: label transfer from the fetal kidney atlas reference using runAzimuth +- [ ] Script: run InferCNV +- [ ] Notebook: explore results from steps 2 to 4 for about 5 to 10 samples +- [ ] Script: compile scripts 2 to 4 in a RMardown file with required adjustements and render it across all samples +- [ ] Notebook: explore results from step 6, integrate all samples together and annotate the dataset using (i) metadatafile, (ii) CNV information, (iii) label transfer information + +## Usage +From Rstudio, run the Rmd reports or render the R scripts (see below R studio session set up). +You can also simply have a look at the html reports in the notebook folder. +Here, no need to run anything, we try to guide you through the analysis. Have a look at the code using the unhide code button on the top right of each chunk! + +## Input files + +### single nuclei data + +We work with the _processed.rds SingleCellExperiment objects. +From the module directory, make sure that the conda environment is set-up: + +```shell +conda activate openscpca +``` + +log into AWS CLI: +```shell +# replace `openscpca` with your AWS CLI profile name if it differs +export AWS_PROFILE=openscpca +aws sso login +``` + +use download-data.py to download the data as the following: +```shell +../../download-data.py --projects SCPCP000006 +``` +This is saving the data in OpenScPCA-analysis/data/current/SCPCP000006 + +Of note, this requires AWS CLI setup to run as intended: https://openscpca.readthedocs.io/en/latest/technical-setup/environment-setup/configure-aws-cli/ + +### sample metadata + +The OpenScPCA-analysis/data/current/SCPCP000006/single_cell_metadata.tsv file contains clinical information related to the samples in the dataset. +Some information can be helpful for annotation and validation: + +- treatment: Some of the samples have been pre-treated with chemotherapy and some are upfront resection. +We expect few changes between the 2 conditions, including a higher immune infiltration and more DNA damages pathways in treated samples. + +- histology: the COG classifies Wilms tumor as either (i) Favorable or (ii) Anaplastic. +Some differenices are expected, some marker genes or pathways are associated with anaplasia (see sets of marker gene). + +## Output files + +## Marker sets + +This folder is a resource for later validation of the annotated cell types. + +### The table CellType_metadata.csv contains the following column and information: +- "gene_symbol" contains the symbol of the described gene, using the HUGO Gene Nomenclature +- ENSEMBL_ID contains the stable identifier from the ENSEMBL database +- cell_class is either "malignant" for marker genes specific to malignant population, or "non-malignant" for markers genes specific to non-malignant tissue or "both" for marker genes that can be found in malignant as well as non-malignant tissue but are still informative in respect to the cell type. +- cell_type contains the list of the cell types that are attributed to the marker gene +- DOI contains the list of main publication identifiers supporting the choice of the marker gene +- comment can be empty or contains any additional information + + |gene_symbol|ENSEMBL_ID|cell_class|cell_type|DOI|comment| + |---|---|---|---|---|---| + |WT1|ENSG00000184937|malignant|cancer_cell|10.1242/dev.153163|Tumor_suppressor_WT1_is_lost_in_some_WT_cells| + |IGF2|ENSG00000167244|malignant|cancer_cell|10.1038/ng1293-408|NA| + |TP53|ENSG00000141510|malignant|anaplastic|10.1158/1078-0432.CCR-16-0985|Might_also_be_in_small_non_anaplastic_subset| + |MYCN|ENSG00000134323|malignant|anaplastic|10.18632/oncotarget.3377|Also_in_non_anaplastic_poor_outcome| + |MAX|ENSG00000125952|malignant|anaplastic|10.1016/j.ccell.2015.01.002|Also_in_non_anaplastic_poor_outcome| + |SIX1|ENSG00000126778|malignant|blastema|10.1016/j.ccell.2015.01.002|NA| + |SIX2|ENSG00000170577|malignant|blastema|10.1016/j.ccell.2015.01.002|NA| + |CITED1|ENSG00000125931|malignant|blastema|10.1593/neo.07358|Also_in_embryonic_kidney| + |PTPRC|ENSG00000081237|immune|NA|10.1101/gr.273300.120|NA| + |CD68|ENSG00000129226|immune|myeloid|10.1186/1746-1596-7-12|NA| + |CD163|ENSG00000177575|immune|macrophage|10.1186/1746-1596-7-12|NA| + |VWF|ENSG00000110799|endothelium|endothelium|10.1134/S1990747819030140|NA| + |CD3E|ENSG00000198851|immune|T_cell|10.1101/gr.273300.120|NA| + |MS4A1|ENSG00000156738|immune|B_cell|10.1101/gr.273300.120|NA| + |FOXP3|ENSG00000049768|immune|T_cell|10.1101/gr.273300.120|Treg| + |CD4|ENSG00000010610|immune|T_cell|10.1101/gr.273300.120|NA| + |CD8A|ENSG00000153563|immune|T_cell|10.1101/gr.273300.120|NA| + |EPCAM|ENSG00000119888|NA|epithelial|10.1016/j.stemcr.2014.05.013|epithelial_malignant_and_non_malignant| + |NCAM1|ENSG00000149294|malignant|blastema|10.1016/j.stemcr.2014.05.013|might_also_be_expressed_in_non_malignant| + |PODXL|ENSG00000128567|non-malignant|podocyte|10.1016/j.stem.2019.06.009|NA| + |COL6A3|ENSG00000163359|malignant|mesenchymal|10.2147/OTT.S256654|might_also_be_expressed_in_non_malignant_stroma| + |THY1|ENSG00000154096|malignant|mesenchymal|10.1093/hmg/ddq042|might_also_be_expressed_in_non_malignant_stroma| + + +### The table GeneticAlterations_metadata.csv contains the following column and information: +- alteration contains the number and portion of the affected chromosome +- gain_loss contains the information regarding the gain or loss of the corresponding genetic alteration +- cell_class is "malignant" +- cell_type contains the list of the malignant cell types that are attributed to the marker gene, either blastemal, stromal, epithelial or NA if none of the three histology is more prone to the described genetic alteration +- DOI contains the list of main publication identifiers supporting the choice of the genetic alteration +- comment can be empty or contains any additional information + +|alteration|gain_loss|cell_class|cell_type|DOI|PMID|comment +|---|---|---|---|---|---|---| +|11p13|loss|malignant|NA|10.1242/dev.153163|NA|NA| +|11p15|loss|malignant|NA|10.1128/mcb.9.4.1799-1803.1989|NA|NA| +|16q|loss|malignant|NA|NA|1317258|Associated_with_relapse| +|1p|loss|malignant|NA|NA|8162576|Associated_with_relapse| +|1q|gain|malignant|NA|10.1016/S0002-9440(10)63982-X|NA|Associated_with_relapse| + + + +## Software requirements + +To perform the analysis, run the RMarkdown script in R (version 4.4.1). +The main packages used are: +- Seurat version 5 +- Azimuth version 5 +- inferCNV +- SCpubr for visualization +- DT for table visualization +- DElegate for differential expression analysis + +### Docker + +To build the Docker image, run the following from this directory: + +```shell +docker buildx build . -t openscpca/cell-type-wilms-tumor-06 +``` + +The image will also be available from ECR: + +To run the container and develop in RStudio Server, run the following **from the root of the repository**, Replacing `{PASSWORD}`, including the curly braces, with a password of your choosing: + +```shell +docker run \ + --mount type=bind,target=/home/rstudio/OpenScPCA-analysis,source=$PWD \ + -e PASSWORD={PASSWORD} \ + -p 8787:8787 \ + public.ecr.aws/openscpca/cell-type-wilms-tumor-06:latest +``` + +This will pull the latest version of the image from ECR if you do not yet have a copy locally. + +Navigate to and log in with the username `rstudio` and the password you set. + +Within RStudio Server, `OpenScPCA-analysis` will point to your local copy of the repository. + +#### A note on Apple Silicon + +If you are on a Mac with an M series chip, you will not be able to use RStudio Server if you are using a `linux/amd64` or `linux/x86_84` (like the ones available from ECR). +You must build an ARM image locally to be able to use RStudio Server within the container. + +#### A note for Halbritter lab internal development +This work has been developed on a system that uses podman instead of docker. The steps to run the docker/podman images are slightly different and we saved in run-podman-internal.sh our internal approach to run the container. Please, refer to the Docker section to build and run the container instead. + +### renv + +This module uses `renv`. +If you are using RStudio Server within the container, the `renv` project will not be activated by default. +You can install packages within the container and use `renv::snapshot()` to update the lockfile without activating the project without a problem in our testing. +The `renv` lockfile is used to install R packages in the Docker image. + +## Computational resources + + diff --git a/analyses/cell-type-wilms-tumor-06/components/dependencies.R b/analyses/cell-type-wilms-tumor-06/components/dependencies.R new file mode 100644 index 000000000..d4071c847 --- /dev/null +++ b/analyses/cell-type-wilms-tumor-06/components/dependencies.R @@ -0,0 +1,8 @@ +# Tidyverse +library(tidyverse) + +# Single-cell packages +library(Seurat) # remotes::install_github("satijalab/seurat@v5.1.0") +library(presto) # remotes::install_github("immunogenomics/presto") +library(Azimuth) # remotes::install_github("satijalab/azimuth") +library(SCpubr) diff --git a/analyses/cell-type-wilms-tumor-06/marker-sets/CellType_metadata.csv b/analyses/cell-type-wilms-tumor-06/marker-sets/CellType_metadata.csv new file mode 100644 index 000000000..b74ca5a03 --- /dev/null +++ b/analyses/cell-type-wilms-tumor-06/marker-sets/CellType_metadata.csv @@ -0,0 +1,23 @@ +gene_symbol,ENSEMBL_ID,cell_class,cell_type,DOI,comment +WT1,ENSG00000184937,malignant,cancer_cell,10.1242/dev.153163,Tumor_suppressor_WT1_is_lost_in_some_WT_cells +IGF2,ENSG00000167244,malignant,cancer_cell,10.1038/ng1293-408,NA +TP53,ENSG00000141510,malignant,anaplastic,10.1158/1078-0432.CCR-16-0985,Might_also_be_in_small_non_anaplastic_subset +MYCN,ENSG00000134323,malignant,anaplastic,10.18632/oncotarget.3377,Also_in_non_anaplastic_poor_outcome +MAX,ENSG00000125952,malignant,anaplastic,10.1016/j.ccell.2015.01.002,Also_in_non_anaplastic_poor_outcome +SIX1,ENSG00000126778,malignant,blastema,10.1016/j.ccell.2015.01.002,NA +SIX2,ENSG00000170577,malignant,blastema,10.1016/j.ccell.2015.01.002,NA +CITED1,ENSG00000125931,malignant,blastema,10.1593/neo.07358,Also_in_embryonic_kidney +PTPRC,ENSG00000081237,immune,NA,10.1101/gr.273300.120,NA +CD68,ENSG00000129226,immune,myeloid,10.1186/1746-1596-7-12,NA +CD163,ENSG00000177575,immune,macrophage,10.1186/1746-1596-7-12,NA +VWF,ENSG00000110799,endothelium,endothelium,10.1134/S1990747819030140,NA +CD3E,ENSG00000198851,immune,T_cell,10.1101/gr.273300.120,NA +MS4A1,ENSG00000156738,immune,B_cell,10.1101/gr.273300.120,NA +FOXP3,ENSG00000049768,immune,T_cell,10.1101/gr.273300.120,Treg +CD4,ENSG00000010610,immune,T_cell,10.1101/gr.273300.120,NA +CD8A,ENSG00000153563,immune,T_cell,10.1101/gr.273300.120,NA +EPCAM,ENSG00000119888,NA,epithelial,10.1016/j.stemcr.2014.05.013,epithelial_malignant_and_non_malignant +NCAM1,ENSG00000149294,malignant,blastema,10.1016/j.stemcr.2014.05.013,might_also_be_expressed_in_non_malignant +PODXL,ENSG00000128567,non-malignant,podocyte,10.1016/j.stem.2019.06.009,NA +COL6A3,ENSG00000163359,malignant,mesenchymal,10.2147/OTT.S256654,might_also_be_expressed_in_non_malignant_stroma +THY1,ENSG00000154096,malignant,mesenchymal,10.1093/hmg/ddq042,might_also_be_expressed_in_non_malignant_stroma diff --git a/analyses/cell-type-wilms-tumor-06/marker-sets/GeneticAlterations_metadata.csv b/analyses/cell-type-wilms-tumor-06/marker-sets/GeneticAlterations_metadata.csv new file mode 100644 index 000000000..42479f0e7 --- /dev/null +++ b/analyses/cell-type-wilms-tumor-06/marker-sets/GeneticAlterations_metadata.csv @@ -0,0 +1,6 @@ +alteration,gain_loss,cell_class,cell_type,DOI,PMID,comment +11p13,loss,malignant,NA,10.1242/dev.153163,NA,NA +11p15,loss,malignant,NA,10.1128/mcb.9.4.1799-1803.1989,NA,NA +16q,loss,malignant,NA,NA,1317258,Associated_with_relapse +1p,loss,malignant,NA,NA,8162576,Associated_with_relapse +1q,gain,malignant,NA,10.1016/S0002-9440(10)63982-X,NA,Associated_with_relapse diff --git a/analyses/cell-type-wilms-tumor-06/plots/.gitkeep b/analyses/cell-type-wilms-tumor-06/plots/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/analyses/cell-type-wilms-tumor-06/renv.lock b/analyses/cell-type-wilms-tumor-06/renv.lock new file mode 100644 index 000000000..127b75ebf --- /dev/null +++ b/analyses/cell-type-wilms-tumor-06/renv.lock @@ -0,0 +1,4009 @@ +{ + "R": { + "Version": "4.4.1", + "Repositories": [ + { + "Name": "CRAN", + "URL": "https://p3m.dev/cran/latest" + } + ] + }, + "Bioconductor": { + "Version": "3.19" + }, + "Packages": { + "AnnotationDbi": { + "Package": "AnnotationDbi", + "Version": "1.66.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "Biobase", + "BiocGenerics", + "DBI", + "IRanges", + "KEGGREST", + "R", + "RSQLite", + "S4Vectors", + "methods", + "stats", + "stats4" + ], + "Hash": "b7df9c597fb5533fc8248d73b8c703ac" + }, + "AnnotationFilter": { + "Package": "AnnotationFilter", + "Version": "1.28.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "GenomicRanges", + "R", + "lazyeval", + "methods", + "utils" + ], + "Hash": "24e809470aef6d81b25003d775b2fb56" + }, + "Azimuth": { + "Package": "Azimuth", + "Version": "0.5.0", + "Source": "GitHub", + "Remotes": "immunogenomics/presto, satijalab/seurat-data, mojaveazure/seurat-disk", + "RemoteType": "github", + "RemoteHost": "api.github.com", + "RemoteRepo": "azimuth", + "RemoteUsername": "satijalab", + "RemoteRef": "HEAD", + "RemoteSha": "243ee5db80fcbffa3452c944254a325a3da2ef9e", + "Requirements": [ + "BSgenome.Hsapiens.UCSC.hg38", + "DT", + "EnsDb.Hsapiens.v86", + "JASPAR2020", + "Matrix", + "R", + "Rcpp", + "Seurat", + "SeuratData", + "SeuratDisk", + "SeuratObject", + "Signac", + "TFBSTools", + "future", + "ggplot2", + "glmGamPoi", + "googlesheets4", + "hdf5r", + "htmltools", + "httr", + "jsonlite", + "methods", + "patchwork", + "plotly", + "presto", + "rlang", + "scales", + "shiny", + "shinyBS", + "shinydashboard", + "shinyjs", + "stats", + "stringr", + "tools", + "utils", + "withr" + ], + "Hash": "59d0a6084aa8b75b77a5da511d0786f6" + }, + "BH": { + "Package": "BH", + "Version": "1.84.0-0", + "Source": "Repository", + "Repository": "RSPM", + "Hash": "a8235afbcd6316e6e91433ea47661013" + }, + "BSgenome": { + "Package": "BSgenome", + "Version": "1.72.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "BiocGenerics", + "BiocIO", + "Biostrings", + "GenomeInfoDb", + "GenomicRanges", + "IRanges", + "R", + "Rsamtools", + "S4Vectors", + "XVector", + "matrixStats", + "methods", + "rtracklayer", + "stats", + "utils" + ], + "Hash": "9e00bf24b78d10f32cb8e1dceb5f87ff" + }, + "BSgenome.Hsapiens.UCSC.hg38": { + "Package": "BSgenome.Hsapiens.UCSC.hg38", + "Version": "1.4.5", + "Source": "Bioconductor", + "Requirements": [ + "BSgenome", + "GenomeInfoDb", + "R" + ], + "Hash": "0ba28cc20a4f8629fbb30d0bf1a133ac" + }, + "Biobase": { + "Package": "Biobase", + "Version": "2.64.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "BiocGenerics", + "R", + "methods", + "utils" + ], + "Hash": "9bc4cabd3bfda461409172213d932813" + }, + "BiocGenerics": { + "Package": "BiocGenerics", + "Version": "0.50.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "R", + "graphics", + "methods", + "stats", + "utils" + ], + "Hash": "ef32d07aafdd12f24c5827374ae3590d" + }, + "BiocIO": { + "Package": "BiocIO", + "Version": "1.14.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "BiocGenerics", + "R", + "S4Vectors", + "methods", + "tools" + ], + "Hash": "f97a7ef01d364cf20d1946d43a3d526f" + }, + "BiocManager": { + "Package": "BiocManager", + "Version": "1.30.23", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "utils" + ], + "Hash": "47e968dfe563c1b22c2e20a067ec21d5" + }, + "BiocParallel": { + "Package": "BiocParallel", + "Version": "1.38.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "BH", + "R", + "codetools", + "cpp11", + "futile.logger", + "methods", + "parallel", + "snow", + "stats", + "utils" + ], + "Hash": "7b6e79f86e3d1c23f62c5e2052e848d4" + }, + "BiocVersion": { + "Package": "BiocVersion", + "Version": "3.19.1", + "Source": "Bioconductor", + "Repository": "Bioconductor 3.19", + "Requirements": [ + "R" + ], + "Hash": "b892e27fc9659a4c8f8787d34c37b8b2" + }, + "Biostrings": { + "Package": "Biostrings", + "Version": "2.72.1", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "BiocGenerics", + "GenomeInfoDb", + "IRanges", + "R", + "S4Vectors", + "XVector", + "crayon", + "grDevices", + "methods", + "stats", + "utils" + ], + "Hash": "886ff0ed958d6f839ed2e0d01f6853b3" + }, + "CNEr": { + "Package": "CNEr", + "Version": "1.40.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "BiocGenerics", + "Biostrings", + "DBI", + "GO.db", + "GenomeInfoDb", + "GenomicAlignments", + "GenomicRanges", + "IRanges", + "KEGGREST", + "R", + "R.utils", + "RSQLite", + "S4Vectors", + "XVector", + "annotate", + "ggplot2", + "methods", + "parallel", + "poweRlaw", + "pwalign", + "readr", + "reshape2", + "rtracklayer", + "tools" + ], + "Hash": "ec6831fae6a3941aeacd3a685a9af5da" + }, + "DBI": { + "Package": "DBI", + "Version": "1.2.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "methods" + ], + "Hash": "065ae649b05f1ff66bb0c793107508f5" + }, + "DT": { + "Package": "DT", + "Version": "0.33", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "crosstalk", + "htmltools", + "htmlwidgets", + "httpuv", + "jquerylib", + "jsonlite", + "magrittr", + "promises" + ], + "Hash": "64ff3427f559ce3f2597a4fe13255cb6" + }, + "DelayedArray": { + "Package": "DelayedArray", + "Version": "0.30.1", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "BiocGenerics", + "IRanges", + "Matrix", + "MatrixGenerics", + "R", + "S4Arrays", + "S4Vectors", + "SparseArray", + "methods", + "stats", + "stats4" + ], + "Hash": "395472c65cd9d606a1a345687102f299" + }, + "DelayedMatrixStats": { + "Package": "DelayedMatrixStats", + "Version": "1.26.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "DelayedArray", + "IRanges", + "Matrix", + "MatrixGenerics", + "S4Vectors", + "methods", + "sparseMatrixStats" + ], + "Hash": "5d9536664ccddb0eaa68a90afe4ee76e" + }, + "DirichletMultinomial": { + "Package": "DirichletMultinomial", + "Version": "1.46.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "BiocGenerics", + "IRanges", + "S4Vectors", + "methods", + "stats4" + ], + "Hash": "220a1c460ab5a750477fb5431e192abd" + }, + "EnsDb.Hsapiens.v86": { + "Package": "EnsDb.Hsapiens.v86", + "Version": "2.99.0", + "Source": "Bioconductor", + "Requirements": [ + "ensembldb" + ], + "Hash": "626af36a8d6de3c44779ff2a073952e6" + }, + "FNN": { + "Package": "FNN", + "Version": "1.1.4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "eaabdc7938aa3632a28273f53a0d226d" + }, + "GO.db": { + "Package": "GO.db", + "Version": "3.19.1", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/data/annotation", + "Requirements": [ + "AnnotationDbi", + "R", + "methods" + ], + "Hash": "46bfc38370acea3503c223347915e43b" + }, + "GenomeInfoDb": { + "Package": "GenomeInfoDb", + "Version": "1.40.1", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "BiocGenerics", + "GenomeInfoDbData", + "IRanges", + "R", + "S4Vectors", + "UCSC.utils", + "methods", + "stats", + "stats4", + "utils" + ], + "Hash": "171e9becd9bb948b9e64eb3759208c94" + }, + "GenomeInfoDbData": { + "Package": "GenomeInfoDbData", + "Version": "1.2.12", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/data/annotation", + "Requirements": [ + "R" + ], + "Hash": "c3c792a7b7f2677be56e8632c5b7543d" + }, + "GenomicAlignments": { + "Package": "GenomicAlignments", + "Version": "1.40.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "BiocGenerics", + "BiocParallel", + "Biostrings", + "GenomeInfoDb", + "GenomicRanges", + "IRanges", + "R", + "Rsamtools", + "S4Vectors", + "SummarizedExperiment", + "methods", + "stats", + "utils" + ], + "Hash": "e539709764587c581b31e446dc84d7b8" + }, + "GenomicFeatures": { + "Package": "GenomicFeatures", + "Version": "1.56.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "AnnotationDbi", + "BiocGenerics", + "Biostrings", + "DBI", + "GenomeInfoDb", + "GenomicRanges", + "IRanges", + "R", + "S4Vectors", + "XVector", + "methods", + "rtracklayer", + "stats", + "utils" + ], + "Hash": "0d19619d13b06b9dea85993ce7f09c52" + }, + "GenomicRanges": { + "Package": "GenomicRanges", + "Version": "1.56.1", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "BiocGenerics", + "GenomeInfoDb", + "IRanges", + "R", + "S4Vectors", + "XVector", + "methods", + "stats", + "stats4", + "utils" + ], + "Hash": "a3c822ef3c124828e25e7a9611beeb50" + }, + "HDF5Array": { + "Package": "HDF5Array", + "Version": "1.32.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "BiocGenerics", + "DelayedArray", + "IRanges", + "Matrix", + "R", + "Rhdf5lib", + "S4Arrays", + "S4Vectors", + "methods", + "rhdf5", + "rhdf5filters", + "stats", + "tools", + "utils" + ], + "Hash": "b10ddb24baf506cf7b4bc868ae65b984" + }, + "IRanges": { + "Package": "IRanges", + "Version": "2.38.1", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "BiocGenerics", + "R", + "S4Vectors", + "methods", + "stats", + "stats4", + "utils" + ], + "Hash": "066f3c5d6b022ed62c91ce49e4d8f619" + }, + "JASPAR2020": { + "Package": "JASPAR2020", + "Version": "0.99.10", + "Source": "Bioconductor", + "Requirements": [ + "R", + "methods" + ], + "Hash": "779f73c6fcd71f791c0985fde2aff785" + }, + "KEGGREST": { + "Package": "KEGGREST", + "Version": "1.44.1", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "Biostrings", + "R", + "httr", + "methods", + "png" + ], + "Hash": "017f19c09477c0473073518db9076ac1" + }, + "KernSmooth": { + "Package": "KernSmooth", + "Version": "2.23-24", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "stats" + ], + "Hash": "9f33a1ee37bbe8919eb2ec4b9f2473a5" + }, + "MASS": { + "Package": "MASS", + "Version": "7.3-61", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "grDevices", + "graphics", + "methods", + "stats", + "utils" + ], + "Hash": "0cafd6f0500e5deba33be22c46bf6055" + }, + "Matrix": { + "Package": "Matrix", + "Version": "1.7-0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "grDevices", + "graphics", + "grid", + "lattice", + "methods", + "stats", + "utils" + ], + "Hash": "1920b2f11133b12350024297d8a4ff4a" + }, + "MatrixGenerics": { + "Package": "MatrixGenerics", + "Version": "1.16.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "matrixStats", + "methods" + ], + "Hash": "152dbbcde6a9a7c7f3beef79b68cd76a" + }, + "ProtGenerics": { + "Package": "ProtGenerics", + "Version": "1.36.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "methods" + ], + "Hash": "a3737c10efc865abfa9d204ca8735b74" + }, + "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": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "470851b6d5d0ac559e9d01bb352b4021" + }, + "RANN": { + "Package": "RANN", + "Version": "2.6.1", + "Source": "Repository", + "Repository": "RSPM", + "Hash": "d128ea05a972d3e67c6f39de52c72bd7" + }, + "RColorBrewer": { + "Package": "RColorBrewer", + "Version": "1.1-3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "45f0398006e83a5b10b72a90663d8d8c" + }, + "RCurl": { + "Package": "RCurl", + "Version": "1.98-1.16", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "bitops", + "methods" + ], + "Hash": "ddbdf53d15b47be4407ede6914f56fbb" + }, + "ROCR": { + "Package": "ROCR", + "Version": "1.0-11", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "gplots", + "grDevices", + "graphics", + "methods", + "stats" + ], + "Hash": "cc151930e20e16427bc3d0daec62b4a9" + }, + "RSQLite": { + "Package": "RSQLite", + "Version": "2.3.7", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "DBI", + "R", + "bit64", + "blob", + "cpp11", + "memoise", + "methods", + "pkgconfig", + "plogr", + "rlang" + ], + "Hash": "46b45a4dd7bb0e0f4e3fc22245817240" + }, + "RSpectra": { + "Package": "RSpectra", + "Version": "0.16-2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "Matrix", + "R", + "Rcpp", + "RcppEigen" + ], + "Hash": "5ffd7a70479497271e57cd0cc2465b3b" + }, + "Rcpp": { + "Package": "Rcpp", + "Version": "1.0.13", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "methods", + "utils" + ], + "Hash": "f27411eb6d9c3dada5edd444b8416675" + }, + "RcppAnnoy": { + "Package": "RcppAnnoy", + "Version": "0.0.22", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "Rcpp", + "methods" + ], + "Hash": "f6baa1e06fb6c3724f601a764266cb0d" + }, + "RcppArmadillo": { + "Package": "RcppArmadillo", + "Version": "14.0.0-1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "Rcpp", + "methods", + "stats", + "utils" + ], + "Hash": "a711769be34214addf7805278b72d56b" + }, + "RcppEigen": { + "Package": "RcppEigen", + "Version": "0.3.4.0.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "Rcpp", + "stats", + "utils" + ], + "Hash": "df49e3306f232ec28f1604e36a202847" + }, + "RcppHNSW": { + "Package": "RcppHNSW", + "Version": "0.6.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "Rcpp", + "methods" + ], + "Hash": "1f2dc32c27746a35196aaf95adb357be" + }, + "RcppProgress": { + "Package": "RcppProgress", + "Version": "0.4.2", + "Source": "Repository", + "Repository": "RSPM", + "Hash": "1c0aa18b97e6aaa17f93b8b866c0ace5" + }, + "RcppRoll": { + "Package": "RcppRoll", + "Version": "0.3.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "Rcpp" + ], + "Hash": "6659c0ecb7b85f322f93e7f1e6ac7d35" + }, + "RcppTOML": { + "Package": "RcppTOML", + "Version": "0.2.2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "Rcpp" + ], + "Hash": "c232938949fcd8126034419cc529333a" + }, + "Rhdf5lib": { + "Package": "Rhdf5lib", + "Version": "1.26.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "R" + ], + "Hash": "c92ba8b9a2c5c9ff600a1062a3b7b727" + }, + "Rhtslib": { + "Package": "Rhtslib", + "Version": "3.0.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "tools", + "zlibbioc" + ], + "Hash": "5d6514cd44a0106581e3310f3972a82e" + }, + "Rsamtools": { + "Package": "Rsamtools", + "Version": "2.20.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "BiocGenerics", + "BiocParallel", + "Biostrings", + "GenomeInfoDb", + "GenomicRanges", + "IRanges", + "R", + "Rhtslib", + "S4Vectors", + "XVector", + "bitops", + "methods", + "stats", + "utils", + "zlibbioc" + ], + "Hash": "9762f24dcbdbd1626173c516bb64792c" + }, + "Rtsne": { + "Package": "Rtsne", + "Version": "0.17", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "Rcpp", + "stats" + ], + "Hash": "f81f7764a3c3e310b1d40e1a8acee19e" + }, + "S4Arrays": { + "Package": "S4Arrays", + "Version": "1.4.1", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "BiocGenerics", + "IRanges", + "Matrix", + "R", + "S4Vectors", + "abind", + "crayon", + "methods", + "stats" + ], + "Hash": "deeed4802c5132e88f24a432a1caf5e0" + }, + "S4Vectors": { + "Package": "S4Vectors", + "Version": "0.42.1", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "BiocGenerics", + "R", + "methods", + "stats", + "stats4", + "utils" + ], + "Hash": "86398fc7c5f6be4ba29fe23ed08c2da6" + }, + "SCpubr": { + "Package": "SCpubr", + "Version": "2.0.2", + "Source": "Bioconductor", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "8b68bff394e3e09995c8044480ecc3ea" + }, + "Seurat": { + "Package": "Seurat", + "Version": "5.1.0", + "Source": "GitHub", + "RemoteType": "github", + "RemoteHost": "api.github.com", + "RemoteRepo": "seurat", + "RemoteUsername": "satijalab", + "RemoteRef": "v5.1.0", + "RemoteSha": "1549dcb3075eaeac01c925c4b4bb73c73450fc50", + "Requirements": [ + "KernSmooth", + "MASS", + "Matrix", + "R", + "RANN", + "RColorBrewer", + "ROCR", + "RSpectra", + "Rcpp", + "RcppAnnoy", + "RcppEigen", + "RcppHNSW", + "RcppProgress", + "Rtsne", + "SeuratObject", + "cluster", + "cowplot", + "fastDummies", + "fitdistrplus", + "future", + "future.apply", + "generics", + "ggplot2", + "ggrepel", + "ggridges", + "grDevices", + "graphics", + "grid", + "httr", + "ica", + "igraph", + "irlba", + "jsonlite", + "leiden", + "lifecycle", + "lmtest", + "matrixStats", + "methods", + "miniUI", + "patchwork", + "pbapply", + "plotly", + "png", + "progressr", + "purrr", + "reticulate", + "rlang", + "scales", + "scattermore", + "sctransform", + "shiny", + "spatstat.explore", + "spatstat.geom", + "stats", + "tibble", + "tools", + "utils", + "uwot" + ], + "Hash": "9e89609201828df08e9c5df431a73157" + }, + "SeuratData": { + "Package": "SeuratData", + "Version": "0.2.2.9001", + "Source": "GitHub", + "RemoteType": "github", + "RemoteHost": "api.github.com", + "RemoteRepo": "seurat-data", + "RemoteUsername": "satijalab", + "RemoteRef": "HEAD", + "RemoteSha": "4dc08e022f51c324bc7bf785b1b5771d2742701d", + "Requirements": [ + "R", + "SeuratObject", + "cli", + "crayon", + "rappdirs", + "stats", + "utils" + ], + "Hash": "58823864a94ee08545fb114c5c629f51" + }, + "SeuratDisk": { + "Package": "SeuratDisk", + "Version": "0.0.0.9021", + "Source": "GitHub", + "Remotes": "satijalab/seurat-data", + "RemoteType": "github", + "RemoteHost": "api.github.com", + "RemoteRepo": "seurat-disk", + "RemoteUsername": "mojaveazure", + "RemoteRef": "HEAD", + "RemoteSha": "877d4e18ab38c686f5db54f8cd290274ccdbe295", + "Requirements": [ + "Matrix", + "R", + "R6", + "Seurat", + "SeuratObject", + "cli", + "crayon", + "hdf5r", + "methods", + "rlang", + "stats", + "stringi", + "tools", + "utils", + "withr" + ], + "Hash": "d9eddfd211bbe8278b1805fe08ffd523" + }, + "SeuratObject": { + "Package": "SeuratObject", + "Version": "5.0.2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "Matrix", + "R", + "Rcpp", + "RcppEigen", + "future", + "future.apply", + "generics", + "grDevices", + "grid", + "lifecycle", + "methods", + "progressr", + "rlang", + "sp", + "spam", + "stats", + "tools", + "utils" + ], + "Hash": "e9b70412b7e04571b46101f5dcbaacad" + }, + "Signac": { + "Package": "Signac", + "Version": "1.13.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "BiocGenerics", + "GenomeInfoDb", + "GenomicRanges", + "IRanges", + "Matrix", + "R", + "Rcpp", + "RcppRoll", + "Rsamtools", + "S4Vectors", + "SeuratObject", + "data.table", + "dplyr", + "fastmatch", + "future", + "future.apply", + "ggplot2", + "grid", + "irlba", + "lifecycle", + "methods", + "patchwork", + "pbapply", + "rlang", + "scales", + "stats", + "stringi", + "tidyr", + "tidyselect", + "utils", + "vctrs" + ], + "Hash": "e29e5a01bf36b5d979a54a7650df301a" + }, + "SingleCellExperiment": { + "Package": "SingleCellExperiment", + "Version": "1.26.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "BiocGenerics", + "DelayedArray", + "GenomicRanges", + "S4Vectors", + "SummarizedExperiment", + "methods", + "stats", + "utils" + ], + "Hash": "4476ad434a5e7887884521417cab3764" + }, + "SparseArray": { + "Package": "SparseArray", + "Version": "1.4.8", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "BiocGenerics", + "IRanges", + "Matrix", + "MatrixGenerics", + "R", + "S4Arrays", + "S4Vectors", + "XVector", + "matrixStats", + "methods", + "stats", + "utils" + ], + "Hash": "97f70ff11c14edd379ee2429228cbb60" + }, + "SummarizedExperiment": { + "Package": "SummarizedExperiment", + "Version": "1.34.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "Biobase", + "BiocGenerics", + "DelayedArray", + "GenomeInfoDb", + "GenomicRanges", + "IRanges", + "Matrix", + "MatrixGenerics", + "R", + "S4Arrays", + "S4Vectors", + "methods", + "stats", + "tools", + "utils" + ], + "Hash": "2f6c8cc972ed6aee07c96e3dff729d15" + }, + "TFBSTools": { + "Package": "TFBSTools", + "Version": "1.42.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "BSgenome", + "Biobase", + "BiocGenerics", + "BiocParallel", + "Biostrings", + "CNEr", + "DBI", + "DirichletMultinomial", + "GenomeInfoDb", + "GenomicRanges", + "IRanges", + "R", + "RSQLite", + "S4Vectors", + "TFMPvalue", + "XML", + "XVector", + "caTools", + "grid", + "gtools", + "methods", + "parallel", + "pwalign", + "rtracklayer", + "seqLogo" + ], + "Hash": "08c6da44e347e91d17156489dc5295fb" + }, + "TFMPvalue": { + "Package": "TFMPvalue", + "Version": "0.0.9", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "Rcpp" + ], + "Hash": "d2974f239e0c14cade60062fe2cbdf0b" + }, + "UCSC.utils": { + "Package": "UCSC.utils", + "Version": "1.0.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "S4Vectors", + "httr", + "jsonlite", + "methods", + "stats" + ], + "Hash": "83d45b690bffd09d1980c224ef329f5b" + }, + "XML": { + "Package": "XML", + "Version": "3.99-0.17", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "methods", + "utils" + ], + "Hash": "bc2a8a1139d8d4bd9c46086708945124" + }, + "XVector": { + "Package": "XVector", + "Version": "0.44.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "BiocGenerics", + "IRanges", + "R", + "S4Vectors", + "methods", + "tools", + "utils", + "zlibbioc" + ], + "Hash": "4245b9938ac74c0dbddbebbec6036ab4" + }, + "abind": { + "Package": "abind", + "Version": "1.4-5", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "methods", + "utils" + ], + "Hash": "4f57884290cc75ab22f4af9e9d4ca862" + }, + "annotate": { + "Package": "annotate", + "Version": "1.82.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "AnnotationDbi", + "Biobase", + "BiocGenerics", + "DBI", + "R", + "XML", + "graphics", + "httr", + "methods", + "stats", + "utils", + "xtable" + ], + "Hash": "659c0a3bfad51dc798e4b4eb0f2cdedc" + }, + "askpass": { + "Package": "askpass", + "Version": "1.2.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "sys" + ], + "Hash": "cad6cf7f1d5f6e906700b9d3e718c796" + }, + "backports": { + "Package": "backports", + "Version": "1.5.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "e1e1b9d75c37401117b636b7ae50827a" + }, + "base64enc": { + "Package": "base64enc", + "Version": "0.1-3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "543776ae6848fde2f48ff3816d0628bc" + }, + "beachmat": { + "Package": "beachmat", + "Version": "2.20.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "BiocGenerics", + "DelayedArray", + "Matrix", + "Rcpp", + "SparseArray", + "methods" + ], + "Hash": "10e94b1bce9070632a40c6b873f8b2d4" + }, + "bit": { + "Package": "bit", + "Version": "4.0.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "d242abec29412ce988848d0294b208fd" + }, + "bit64": { + "Package": "bit64", + "Version": "4.0.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "bit", + "methods", + "stats", + "utils" + ], + "Hash": "9fe98599ca456d6552421db0d6772d8f" + }, + "bitops": { + "Package": "bitops", + "Version": "1.0-8", + "Source": "Repository", + "Repository": "RSPM", + "Hash": "da69e6b6f8feebec0827205aad3fdbd8" + }, + "blob": { + "Package": "blob", + "Version": "1.2.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "methods", + "rlang", + "vctrs" + ], + "Hash": "40415719b5a479b87949f3aa0aee737c" + }, + "broom": { + "Package": "broom", + "Version": "1.0.6", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "backports", + "dplyr", + "generics", + "glue", + "lifecycle", + "purrr", + "rlang", + "stringr", + "tibble", + "tidyr" + ], + "Hash": "a4652c36d1f8abfc3ddf4774f768c934" + }, + "bslib": { + "Package": "bslib", + "Version": "0.8.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "base64enc", + "cachem", + "fastmap", + "grDevices", + "htmltools", + "jquerylib", + "jsonlite", + "lifecycle", + "memoise", + "mime", + "rlang", + "sass" + ], + "Hash": "b299c6741ca9746fb227debcb0f9fb6c" + }, + "caTools": { + "Package": "caTools", + "Version": "1.18.2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "bitops" + ], + "Hash": "34d90fa5845004236b9eacafc51d07b2" + }, + "cachem": { + "Package": "cachem", + "Version": "1.1.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "fastmap", + "rlang" + ], + "Hash": "cd9a672193789068eb5a2aad65a0dedf" + }, + "callr": { + "Package": "callr", + "Version": "3.7.6", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "processx", + "utils" + ], + "Hash": "d7e13f49c19103ece9e58ad2d83a7354" + }, + "cellranger": { + "Package": "cellranger", + "Version": "1.1.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "rematch", + "tibble" + ], + "Hash": "f61dbaec772ccd2e17705c1e872e9e7c" + }, + "cli": { + "Package": "cli", + "Version": "3.6.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "utils" + ], + "Hash": "b21916dd77a27642b447374a5d30ecf3" + }, + "clipr": { + "Package": "clipr", + "Version": "0.8.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "utils" + ], + "Hash": "3f038e5ac7f41d4ac41ce658c85e3042" + }, + "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": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "61e097f35917d342622f21cdc79c256e" + }, + "colorspace": { + "Package": "colorspace", + "Version": "2.1-1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "grDevices", + "graphics", + "methods", + "stats" + ], + "Hash": "d954cb1c57e8d8b756165d7ba18aa55a" + }, + "commonmark": { + "Package": "commonmark", + "Version": "1.9.1", + "Source": "Repository", + "Repository": "RSPM", + "Hash": "5d8225445acb167abf7797de48b2ee3c" + }, + "conflicted": { + "Package": "conflicted", + "Version": "1.2.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "memoise", + "rlang" + ], + "Hash": "bb097fccb22d156624fd07cd2894ddb6" + }, + "cowplot": { + "Package": "cowplot", + "Version": "1.1.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "ggplot2", + "grDevices", + "grid", + "gtable", + "methods", + "rlang", + "scales" + ], + "Hash": "8ef2084dd7d28847b374e55440e4f8cb" + }, + "cpp11": { + "Package": "cpp11", + "Version": "0.4.7", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "5a295d7d963cc5035284dcdbaf334f4e" + }, + "crayon": { + "Package": "crayon", + "Version": "1.5.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "grDevices", + "methods", + "utils" + ], + "Hash": "859d96e65ef198fd43e82b9628d593ef" + }, + "crosstalk": { + "Package": "crosstalk", + "Version": "1.2.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R6", + "htmltools", + "jsonlite", + "lazyeval" + ], + "Hash": "ab12c7b080a57475248a30f4db6298c0" + }, + "curl": { + "Package": "curl", + "Version": "5.2.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "411ca2c03b1ce5f548345d2fc2685f7a" + }, + "data.table": { + "Package": "data.table", + "Version": "1.15.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "methods" + ], + "Hash": "8ee9ac56ef633d0c7cab8b2ca87d683e" + }, + "dbplyr": { + "Package": "dbplyr", + "Version": "2.5.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "DBI", + "R", + "R6", + "blob", + "cli", + "dplyr", + "glue", + "lifecycle", + "magrittr", + "methods", + "pillar", + "purrr", + "rlang", + "tibble", + "tidyr", + "tidyselect", + "utils", + "vctrs", + "withr" + ], + "Hash": "39b2e002522bfd258039ee4e889e0fd1" + }, + "deldir": { + "Package": "deldir", + "Version": "2.0-4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "grDevices", + "graphics" + ], + "Hash": "24754fce82729ff85317dd195b6646a8" + }, + "digest": { + "Package": "digest", + "Version": "0.6.36", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "utils" + ], + "Hash": "fd6824ad91ede64151e93af67df6376b" + }, + "dotCall64": { + "Package": "dotCall64", + "Version": "1.1-1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "80f374ef8500fcdc5d84a0345b837227" + }, + "dplyr": { + "Package": "dplyr", + "Version": "1.1.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "cli", + "generics", + "glue", + "lifecycle", + "magrittr", + "methods", + "pillar", + "rlang", + "tibble", + "tidyselect", + "utils", + "vctrs" + ], + "Hash": "fedd9d00c2944ff00a0e2696ccf048ec" + }, + "dqrng": { + "Package": "dqrng", + "Version": "0.4.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "BH", + "R", + "Rcpp", + "sitmo" + ], + "Hash": "6d7b942d8f615705f89a7883998fc839" + }, + "dtplyr": { + "Package": "dtplyr", + "Version": "1.3.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "data.table", + "dplyr", + "glue", + "lifecycle", + "rlang", + "tibble", + "tidyselect", + "vctrs" + ], + "Hash": "54ed3ea01b11e81a86544faaecfef8e2" + }, + "ensembldb": { + "Package": "ensembldb", + "Version": "2.28.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "AnnotationDbi", + "AnnotationFilter", + "Biobase", + "BiocGenerics", + "Biostrings", + "DBI", + "GenomeInfoDb", + "GenomicFeatures", + "GenomicRanges", + "IRanges", + "ProtGenerics", + "R", + "RSQLite", + "Rsamtools", + "S4Vectors", + "curl", + "methods", + "rtracklayer" + ], + "Hash": "f9a5e52468ec832a839c012e15c41c15" + }, + "evaluate": { + "Package": "evaluate", + "Version": "0.24.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "methods" + ], + "Hash": "a1066cbc05caee9a4bf6d90f194ff4da" + }, + "fansi": { + "Package": "fansi", + "Version": "1.0.6", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "grDevices", + "utils" + ], + "Hash": "962174cf2aeb5b9eea581522286a911f" + }, + "farver": { + "Package": "farver", + "Version": "2.1.2", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "680887028577f3fa2a81e410ed0d6e42" + }, + "fastDummies": { + "Package": "fastDummies", + "Version": "1.7.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "data.table", + "stringr", + "tibble" + ], + "Hash": "e0f9c0c051e0e8d89996d7f0c400539f" + }, + "fastmap": { + "Package": "fastmap", + "Version": "1.2.0", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "aa5e1cd11c2d15497494c5292d7ffcc8" + }, + "fastmatch": { + "Package": "fastmatch", + "Version": "1.1-4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "8c406b7284bbaef08e01c6687367f195" + }, + "fitdistrplus": { + "Package": "fitdistrplus", + "Version": "1.2-1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "MASS", + "R", + "grDevices", + "methods", + "rlang", + "stats", + "survival" + ], + "Hash": "78f15d68e31a6d9a378c546c783bac15" + }, + "fontawesome": { + "Package": "fontawesome", + "Version": "0.5.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "htmltools", + "rlang" + ], + "Hash": "c2efdd5f0bcd1ea861c2d4e2a883a67d" + }, + "forcats": { + "Package": "forcats", + "Version": "1.0.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "glue", + "lifecycle", + "magrittr", + "rlang", + "tibble" + ], + "Hash": "1a0a9a3d5083d0d573c4214576f1e690" + }, + "formatR": { + "Package": "formatR", + "Version": "1.14", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "63cb26d12517c7863f5abb006c5e0f25" + }, + "fs": { + "Package": "fs", + "Version": "1.6.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "methods" + ], + "Hash": "15aeb8c27f5ea5161f9f6a641fafd93a" + }, + "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.34.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "digest", + "globals", + "listenv", + "parallel", + "parallelly", + "utils" + ], + "Hash": "475771e3edb711591476be387c9a8c2e" + }, + "future.apply": { + "Package": "future.apply", + "Version": "1.11.2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "future", + "globals", + "parallel", + "utils" + ], + "Hash": "afe1507511629f44572e6c53b9baeb7c" + }, + "gargle": { + "Package": "gargle", + "Version": "1.5.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "fs", + "glue", + "httr", + "jsonlite", + "lifecycle", + "openssl", + "rappdirs", + "rlang", + "stats", + "utils", + "withr" + ], + "Hash": "fc0b272e5847c58cd5da9b20eedbd026" + }, + "generics": { + "Package": "generics", + "Version": "0.1.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "methods" + ], + "Hash": "15e9634c0fcd294799e9b2e929ed1b86" + }, + "ggplot2": { + "Package": "ggplot2", + "Version": "3.5.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "MASS", + "R", + "cli", + "glue", + "grDevices", + "grid", + "gtable", + "isoband", + "lifecycle", + "mgcv", + "rlang", + "scales", + "stats", + "tibble", + "vctrs", + "withr" + ], + "Hash": "44c6a2f8202d5b7e878ea274b1092426" + }, + "ggrepel": { + "Package": "ggrepel", + "Version": "0.9.5", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "Rcpp", + "ggplot2", + "grid", + "rlang", + "scales", + "withr" + ], + "Hash": "cc3361e234c4a5050e29697d675764aa" + }, + "ggridges": { + "Package": "ggridges", + "Version": "0.5.6", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "ggplot2", + "grid", + "scales", + "withr" + ], + "Hash": "66488692cb8621bc78df1b9b819497a6" + }, + "glmGamPoi": { + "Package": "glmGamPoi", + "Version": "1.16.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "BiocGenerics", + "DelayedArray", + "DelayedMatrixStats", + "HDF5Array", + "MatrixGenerics", + "Rcpp", + "RcppArmadillo", + "SingleCellExperiment", + "SummarizedExperiment", + "beachmat", + "matrixStats", + "methods", + "rlang", + "splines", + "stats", + "utils", + "vctrs" + ], + "Hash": "21e305cf5faebb13bee698a5a1c4bced" + }, + "globals": { + "Package": "globals", + "Version": "0.16.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "codetools" + ], + "Hash": "2580567908cafd4f187c1e5a91e98b7f" + }, + "glue": { + "Package": "glue", + "Version": "1.7.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "methods" + ], + "Hash": "e0b3a53876554bd45879e596cdb10a52" + }, + "goftest": { + "Package": "goftest", + "Version": "1.2-3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "stats" + ], + "Hash": "dbe0201f91eeb15918dd3fbf01ee689a" + }, + "googledrive": { + "Package": "googledrive", + "Version": "2.1.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "gargle", + "glue", + "httr", + "jsonlite", + "lifecycle", + "magrittr", + "pillar", + "purrr", + "rlang", + "tibble", + "utils", + "uuid", + "vctrs", + "withr" + ], + "Hash": "e99641edef03e2a5e87f0a0b1fcc97f4" + }, + "googlesheets4": { + "Package": "googlesheets4", + "Version": "1.1.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cellranger", + "cli", + "curl", + "gargle", + "glue", + "googledrive", + "httr", + "ids", + "lifecycle", + "magrittr", + "methods", + "purrr", + "rematch2", + "rlang", + "tibble", + "utils", + "vctrs", + "withr" + ], + "Hash": "d6db1667059d027da730decdc214b959" + }, + "gplots": { + "Package": "gplots", + "Version": "3.1.3.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "KernSmooth", + "R", + "caTools", + "gtools", + "methods", + "stats" + ], + "Hash": "f72b5d1ed587f8905e38ee7295e88d80" + }, + "gridExtra": { + "Package": "gridExtra", + "Version": "2.3", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "grDevices", + "graphics", + "grid", + "gtable", + "utils" + ], + "Hash": "7d7f283939f563670a697165b2cf5560" + }, + "gtable": { + "Package": "gtable", + "Version": "0.3.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "glue", + "grid", + "lifecycle", + "rlang" + ], + "Hash": "e18861963cbc65a27736e02b3cd3c4a0" + }, + "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", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "cpp11", + "forcats", + "hms", + "lifecycle", + "methods", + "readr", + "rlang", + "tibble", + "tidyselect", + "vctrs" + ], + "Hash": "9171f898db9d9c4c1b2c745adc2c1ef1" + }, + "hdf5r": { + "Package": "hdf5r", + "Version": "1.3.11", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "R6", + "bit64", + "methods", + "utils" + ], + "Hash": "8f066454d3c306fa34e2885fbbfd4e1c" + }, + "here": { + "Package": "here", + "Version": "1.0.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "rprojroot" + ], + "Hash": "24b224366f9c2e7534d2344d10d59211" + }, + "highr": { + "Package": "highr", + "Version": "0.11", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "xfun" + ], + "Hash": "d65ba49117ca223614f71b60d85b8ab7" + }, + "hms": { + "Package": "hms", + "Version": "1.1.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "lifecycle", + "methods", + "pkgconfig", + "rlang", + "vctrs" + ], + "Hash": "b59377caa7ed00fa41808342002138f9" + }, + "htmltools": { + "Package": "htmltools", + "Version": "0.5.8.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "base64enc", + "digest", + "fastmap", + "grDevices", + "rlang", + "utils" + ], + "Hash": "81d371a9cc60640e74e4ab6ac46dcedc" + }, + "htmlwidgets": { + "Package": "htmlwidgets", + "Version": "1.6.4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "grDevices", + "htmltools", + "jsonlite", + "knitr", + "rmarkdown", + "yaml" + ], + "Hash": "04291cc45198225444a397606810ac37" + }, + "httpuv": { + "Package": "httpuv", + "Version": "1.6.15", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "R6", + "Rcpp", + "later", + "promises", + "utils" + ], + "Hash": "d55aa087c47a63ead0f6fc10f8fa1ee0" + }, + "httr": { + "Package": "httr", + "Version": "1.4.7", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "curl", + "jsonlite", + "mime", + "openssl" + ], + "Hash": "ac107251d9d9fd72f0ca8049988f1d7f" + }, + "ica": { + "Package": "ica", + "Version": "1.0-3", + "Source": "Repository", + "Repository": "RSPM", + "Hash": "d9b52ced14e24a0e69e228c20eb5eb27" + }, + "ids": { + "Package": "ids", + "Version": "1.0.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "openssl", + "uuid" + ], + "Hash": "99df65cfef20e525ed38c3d2577f7190" + }, + "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" + }, + "irlba": { + "Package": "irlba", + "Version": "2.3.5.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "Matrix", + "R", + "methods", + "stats" + ], + "Hash": "acb06a47b732c6251afd16e19c3201ff" + }, + "isoband": { + "Package": "isoband", + "Version": "0.2.7", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "grid", + "utils" + ], + "Hash": "0080607b4a1a7b28979aecef976d8bc2" + }, + "jquerylib": { + "Package": "jquerylib", + "Version": "0.1.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "htmltools" + ], + "Hash": "5aab57a3bd297eee1c1d862735972182" + }, + "jsonlite": { + "Package": "jsonlite", + "Version": "1.8.8", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "methods" + ], + "Hash": "e1b9c55281c5adc4dd113652d9e26768" + }, + "knitr": { + "Package": "knitr", + "Version": "1.48", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "evaluate", + "highr", + "methods", + "tools", + "xfun", + "yaml" + ], + "Hash": "acf380f300c721da9fde7df115a5f86f" + }, + "labeling": { + "Package": "labeling", + "Version": "0.4.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "graphics", + "stats" + ], + "Hash": "b64ec208ac5bc1852b285f665d6368b3" + }, + "lambda.r": { + "Package": "lambda.r", + "Version": "1.2.4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "formatR" + ], + "Hash": "b1e925c4b9ffeb901bacf812cbe9a6ad" + }, + "later": { + "Package": "later", + "Version": "1.3.2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "Rcpp", + "rlang" + ], + "Hash": "a3e051d405326b8b0012377434c62b37" + }, + "lattice": { + "Package": "lattice", + "Version": "0.22-6", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "grDevices", + "graphics", + "grid", + "stats", + "utils" + ], + "Hash": "cc5ac1ba4c238c7ca9fa6a87ca11a7e2" + }, + "lazyeval": { + "Package": "lazyeval", + "Version": "0.2.2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "d908914ae53b04d4c0c0fd72ecc35370" + }, + "leiden": { + "Package": "leiden", + "Version": "0.4.3.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "Matrix", + "igraph", + "methods", + "reticulate" + ], + "Hash": "b21c4ae2bb7935504c42bcdf749c04e6" + }, + "lifecycle": { + "Package": "lifecycle", + "Version": "1.0.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "glue", + "rlang" + ], + "Hash": "b8552d117e1b808b09a832f589b79035" + }, + "listenv": { + "Package": "listenv", + "Version": "0.9.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "e2fca3e12e4db979dccc6e519b10a7ee" + }, + "lmtest": { + "Package": "lmtest", + "Version": "0.9-40", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "graphics", + "stats", + "zoo" + ], + "Hash": "c6fafa6cccb1e1dfe7f7d122efd6e6a7" + }, + "lubridate": { + "Package": "lubridate", + "Version": "1.9.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "generics", + "methods", + "timechange" + ], + "Hash": "680ad542fbcf801442c83a6ac5a2126c" + }, + "magrittr": { + "Package": "magrittr", + "Version": "2.0.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "7ce2733a9826b3aeb1775d56fd305472" + }, + "matrixStats": { + "Package": "matrixStats", + "Version": "1.3.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "4b3ea27a19d669c0405b38134d89a9d1" + }, + "memoise": { + "Package": "memoise", + "Version": "2.0.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "cachem", + "rlang" + ], + "Hash": "e2817ccf4a065c5d9d7f2cfbe7c1d78c" + }, + "mgcv": { + "Package": "mgcv", + "Version": "1.9-1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "Matrix", + "R", + "graphics", + "methods", + "nlme", + "splines", + "stats", + "utils" + ], + "Hash": "110ee9d83b496279960e162ac97764ce" + }, + "mime": { + "Package": "mime", + "Version": "0.12", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "tools" + ], + "Hash": "18e9c28c1d3ca1560ce30658b22ce104" + }, + "miniUI": { + "Package": "miniUI", + "Version": "0.1.1.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "htmltools", + "shiny", + "utils" + ], + "Hash": "fec5f52652d60615fdb3957b3d74324a" + }, + "modelr": { + "Package": "modelr", + "Version": "0.1.11", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "broom", + "magrittr", + "purrr", + "rlang", + "tibble", + "tidyr", + "tidyselect", + "vctrs" + ], + "Hash": "4f50122dc256b1b6996a4703fecea821" + }, + "munsell": { + "Package": "munsell", + "Version": "0.5.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "colorspace", + "methods" + ], + "Hash": "4fd8900853b746af55b81fda99da7695" + }, + "nlme": { + "Package": "nlme", + "Version": "3.1-165", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "graphics", + "lattice", + "stats", + "utils" + ], + "Hash": "2769a88be217841b1f33ed469675c3cc" + }, + "openssl": { + "Package": "openssl", + "Version": "2.2.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "askpass" + ], + "Hash": "2bcca3848e4734eb3b16103bc9aa4b8e" + }, + "parallelly": { + "Package": "parallelly", + "Version": "1.38.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "parallel", + "tools", + "utils" + ], + "Hash": "6e8b139c1904f5e9e14c69db64453bbe" + }, + "patchwork": { + "Package": "patchwork", + "Version": "1.2.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "cli", + "ggplot2", + "grDevices", + "graphics", + "grid", + "gtable", + "rlang", + "stats", + "utils" + ], + "Hash": "9c8ab14c00ac07e9e04d1664c0b74486" + }, + "pbapply": { + "Package": "pbapply", + "Version": "1.7-2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "parallel" + ], + "Hash": "68a2d681e10cf72f0afa1d84d45380e5" + }, + "pillar": { + "Package": "pillar", + "Version": "1.9.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "cli", + "fansi", + "glue", + "lifecycle", + "rlang", + "utf8", + "utils", + "vctrs" + ], + "Hash": "15da5a8412f317beeee6175fbc76f4bb" + }, + "pkgconfig": { + "Package": "pkgconfig", + "Version": "2.0.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "utils" + ], + "Hash": "01f28d4278f15c76cddbea05899c5d6f" + }, + "plogr": { + "Package": "plogr", + "Version": "0.2.0", + "Source": "Repository", + "Repository": "RSPM", + "Hash": "09eb987710984fc2905c7129c7d85e65" + }, + "plotly": { + "Package": "plotly", + "Version": "4.10.4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "RColorBrewer", + "base64enc", + "crosstalk", + "data.table", + "digest", + "dplyr", + "ggplot2", + "htmltools", + "htmlwidgets", + "httr", + "jsonlite", + "lazyeval", + "magrittr", + "promises", + "purrr", + "rlang", + "scales", + "tibble", + "tidyr", + "tools", + "vctrs", + "viridisLite" + ], + "Hash": "a1ac5c03ad5ad12b9d1597e00e23c3dd" + }, + "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", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "bd54ba8a0a5faded999a7aab6e46b374" + }, + "polyclip": { + "Package": "polyclip", + "Version": "1.10-7", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "5879bf5aae702ffef0a315c44328f984" + }, + "poweRlaw": { + "Package": "poweRlaw", + "Version": "0.80.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "methods", + "parallel", + "pracma", + "stats", + "utils" + ], + "Hash": "5426de2f982c69863ea338e5df80b9ef" + }, + "pracma": { + "Package": "pracma", + "Version": "2.4.4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "grDevices", + "graphics", + "stats", + "utils" + ], + "Hash": "44bc172d47d1ea0a638d9f299e321203" + }, + "presto": { + "Package": "presto", + "Version": "1.0.0", + "Source": "GitHub", + "RemoteType": "github", + "RemoteHost": "api.github.com", + "RemoteRepo": "presto", + "RemoteUsername": "immunogenomics", + "RemoteRef": "HEAD", + "RemoteSha": "7636b3d0465c468c35853f82f1717d3a64b3c8f6", + "Requirements": [ + "Matrix", + "R", + "Rcpp", + "RcppArmadillo", + "data.table", + "dplyr", + "methods", + "purrr", + "rlang", + "stats", + "tibble", + "tidyr", + "utils" + ], + "Hash": "c682f57757230a29913ad71f22aef990" + }, + "prettyunits": { + "Package": "prettyunits", + "Version": "1.2.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "6b01fc98b1e86c4f705ce9dcfd2f57c7" + }, + "processx": { + "Package": "processx", + "Version": "3.8.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "ps", + "utils" + ], + "Hash": "0c90a7d71988856bad2a2a45dd871bb9" + }, + "progress": { + "Package": "progress", + "Version": "1.2.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "crayon", + "hms", + "prettyunits" + ], + "Hash": "f4625e061cb2865f111b47ff163a5ca6" + }, + "progressr": { + "Package": "progressr", + "Version": "0.14.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "digest", + "utils" + ], + "Hash": "ac50c4ffa8f6a46580dd4d7813add3c4" + }, + "promises": { + "Package": "promises", + "Version": "1.3.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R6", + "Rcpp", + "fastmap", + "later", + "magrittr", + "rlang", + "stats" + ], + "Hash": "434cd5388a3979e74be5c219bcd6e77d" + }, + "ps": { + "Package": "ps", + "Version": "1.7.7", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "utils" + ], + "Hash": "878b467580097e9c383acbb16adab57a" + }, + "purrr": { + "Package": "purrr", + "Version": "1.0.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "lifecycle", + "magrittr", + "rlang", + "vctrs" + ], + "Hash": "1cba04a4e9414bdefc9dcaa99649a8dc" + }, + "pwalign": { + "Package": "pwalign", + "Version": "1.0.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "BiocGenerics", + "Biostrings", + "IRanges", + "S4Vectors", + "XVector", + "methods", + "utils" + ], + "Hash": "ab816689019959eb97edc8ff9595c7be" + }, + "ragg": { + "Package": "ragg", + "Version": "1.3.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "systemfonts", + "textshaping" + ], + "Hash": "e3087db406e079a8a2fd87f413918ed3" + }, + "rappdirs": { + "Package": "rappdirs", + "Version": "0.3.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "5e3c5dc0b071b21fa128676560dbe94d" + }, + "readr": { + "Package": "readr", + "Version": "2.1.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "cli", + "clipr", + "cpp11", + "crayon", + "hms", + "lifecycle", + "methods", + "rlang", + "tibble", + "tzdb", + "utils", + "vroom" + ], + "Hash": "9de96463d2117f6ac49980577939dfb3" + }, + "readxl": { + "Package": "readxl", + "Version": "1.4.3", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cellranger", + "cpp11", + "progress", + "tibble", + "utils" + ], + "Hash": "8cf9c239b96df1bbb133b74aef77ad0a" + }, + "rematch": { + "Package": "rematch", + "Version": "2.0.0", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "cbff1b666c6fa6d21202f07e2318d4f1" + }, + "rematch2": { + "Package": "rematch2", + "Version": "2.1.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "tibble" + ], + "Hash": "76c9e04c712a05848ae7a23d2f170a40" + }, + "renv": { + "Package": "renv", + "Version": "1.0.7", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "utils" + ], + "Hash": "397b7b2a265bc5a7a06852524dabae20" + }, + "reprex": { + "Package": "reprex", + "Version": "2.1.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "callr", + "cli", + "clipr", + "fs", + "glue", + "knitr", + "lifecycle", + "rlang", + "rmarkdown", + "rstudioapi", + "utils", + "withr" + ], + "Hash": "97b1d5361a24d9fb588db7afe3e5bcbf" + }, + "reshape2": { + "Package": "reshape2", + "Version": "1.4.4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "Rcpp", + "plyr", + "stringr" + ], + "Hash": "bb5996d0bd962d214a11140d77589917" + }, + "restfulr": { + "Package": "restfulr", + "Version": "0.0.15", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "RCurl", + "S4Vectors", + "XML", + "methods", + "rjson", + "yaml" + ], + "Hash": "44651c1e68eda9d462610aca9f15a815" + }, + "reticulate": { + "Package": "reticulate", + "Version": "1.38.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "Matrix", + "R", + "Rcpp", + "RcppTOML", + "graphics", + "here", + "jsonlite", + "methods", + "png", + "rappdirs", + "rlang", + "utils", + "withr" + ], + "Hash": "8810e64cfe0240afe926617a854a38a4" + }, + "rhdf5": { + "Package": "rhdf5", + "Version": "2.48.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "R", + "Rhdf5lib", + "methods", + "rhdf5filters" + ], + "Hash": "74d8c5aeb96d090ce8efc9ffd16afa2b" + }, + "rhdf5filters": { + "Package": "rhdf5filters", + "Version": "1.16.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "Rhdf5lib" + ], + "Hash": "99e15369f8fb17dc188377234de13fc6" + }, + "rjson": { + "Package": "rjson", + "Version": "0.2.21", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "f9da75e6444e95a1baf8ca24909d63b9" + }, + "rlang": { + "Package": "rlang", + "Version": "1.1.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "utils" + ], + "Hash": "3eec01f8b1dee337674b2e34ab1f9bc1" + }, + "rmarkdown": { + "Package": "rmarkdown", + "Version": "2.27", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "bslib", + "evaluate", + "fontawesome", + "htmltools", + "jquerylib", + "jsonlite", + "knitr", + "methods", + "tinytex", + "tools", + "utils", + "xfun", + "yaml" + ], + "Hash": "27f9502e1cdbfa195f94e03b0f517484" + }, + "rprojroot": { + "Package": "rprojroot", + "Version": "2.0.4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "4c8415e0ec1e29f3f4f6fc108bef0144" + }, + "rstudioapi": { + "Package": "rstudioapi", + "Version": "0.16.0", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "96710351d642b70e8f02ddeb237c46a7" + }, + "rtracklayer": { + "Package": "rtracklayer", + "Version": "1.64.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "BiocGenerics", + "BiocIO", + "Biostrings", + "GenomeInfoDb", + "GenomicAlignments", + "GenomicRanges", + "IRanges", + "R", + "Rsamtools", + "S4Vectors", + "XML", + "XVector", + "curl", + "httr", + "methods", + "restfulr", + "tools", + "zlibbioc" + ], + "Hash": "3d6f004fce582bd7d68e2e18d44abbc1" + }, + "rvest": { + "Package": "rvest", + "Version": "1.0.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "glue", + "httr", + "lifecycle", + "magrittr", + "rlang", + "selectr", + "tibble", + "xml2" + ], + "Hash": "0bcf0c6f274e90ea314b812a6d19a519" + }, + "sass": { + "Package": "sass", + "Version": "0.4.9", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R6", + "fs", + "htmltools", + "rappdirs", + "rlang" + ], + "Hash": "d53dbfddf695303ea4ad66f86e99b95d" + }, + "scales": { + "Package": "scales", + "Version": "1.3.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "RColorBrewer", + "cli", + "farver", + "glue", + "labeling", + "lifecycle", + "munsell", + "rlang", + "viridisLite" + ], + "Hash": "c19df082ba346b0ffa6f833e92de34d1" + }, + "scattermore": { + "Package": "scattermore", + "Version": "1.2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "ggplot2", + "grDevices", + "graphics", + "grid", + "scales" + ], + "Hash": "d316e4abb854dd1677f7bd3ad08bc4e8" + }, + "sctransform": { + "Package": "sctransform", + "Version": "0.4.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "MASS", + "Matrix", + "R", + "Rcpp", + "RcppArmadillo", + "dplyr", + "future", + "future.apply", + "ggplot2", + "gridExtra", + "magrittr", + "matrixStats", + "methods", + "reshape2", + "rlang" + ], + "Hash": "0242402f321be0246fb67cf8c63b3572" + }, + "selectr": { + "Package": "selectr", + "Version": "0.4-2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "R6", + "methods", + "stringr" + ], + "Hash": "3838071b66e0c566d55cc26bd6e27bf4" + }, + "seqLogo": { + "Package": "seqLogo", + "Version": "1.70.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "R", + "grDevices", + "grid", + "methods", + "stats4" + ], + "Hash": "8d3102283e7ba083042118b22d805510" + }, + "shiny": { + "Package": "shiny", + "Version": "1.9.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "R6", + "bslib", + "cachem", + "commonmark", + "crayon", + "fastmap", + "fontawesome", + "glue", + "grDevices", + "htmltools", + "httpuv", + "jsonlite", + "later", + "lifecycle", + "methods", + "mime", + "promises", + "rlang", + "sourcetools", + "tools", + "utils", + "withr", + "xtable" + ], + "Hash": "6a293995a66e12c48d13aa1f957d09c7" + }, + "shinyBS": { + "Package": "shinyBS", + "Version": "0.61.1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "htmltools", + "shiny" + ], + "Hash": "e44255f073ecdc26ba6bc2ce3fcf174d" + }, + "shinydashboard": { + "Package": "shinydashboard", + "Version": "0.7.2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "htmltools", + "promises", + "shiny", + "utils" + ], + "Hash": "e418b532e9bb4eb22a714b9a9f1acee7" + }, + "shinyjs": { + "Package": "shinyjs", + "Version": "2.1.0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "digest", + "jsonlite", + "shiny" + ], + "Hash": "802e4786b353a4bb27116957558548d5" + }, + "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" + }, + "sourcetools": { + "Package": "sourcetools", + "Version": "0.1.7-1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R" + ], + "Hash": "5f5a7629f956619d519205ec475fe647" + }, + "sp": { + "Package": "sp", + "Version": "2.1-4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "grDevices", + "graphics", + "grid", + "lattice", + "methods", + "stats", + "utils" + ], + "Hash": "75940133cca2e339afce15a586f85b11" + }, + "spam": { + "Package": "spam", + "Version": "2.10-0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "Rcpp", + "dotCall64", + "grid", + "methods" + ], + "Hash": "ffe1f9e95a4375530747b268f82b5086" + }, + "sparseMatrixStats": { + "Package": "sparseMatrixStats", + "Version": "1.16.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Requirements": [ + "Matrix", + "MatrixGenerics", + "Rcpp", + "matrixStats", + "methods" + ], + "Hash": "7e500a5a527460ca0406473bdcade286" + }, + "spatstat.data": { + "Package": "spatstat.data", + "Version": "3.1-2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "Matrix", + "R", + "spatstat.utils" + ], + "Hash": "69781a4d1dd8d1575d24b8b133e1e09f" + }, + "spatstat.explore": { + "Package": "spatstat.explore", + "Version": "3.3-1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "Matrix", + "R", + "abind", + "goftest", + "grDevices", + "graphics", + "methods", + "nlme", + "spatstat.data", + "spatstat.geom", + "spatstat.random", + "spatstat.sparse", + "spatstat.univar", + "spatstat.utils", + "stats", + "utils" + ], + "Hash": "f067b8be947762544fccff7b7e8a1d09" + }, + "spatstat.geom": { + "Package": "spatstat.geom", + "Version": "3.3-2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "deldir", + "grDevices", + "graphics", + "methods", + "polyclip", + "spatstat.data", + "spatstat.univar", + "spatstat.utils", + "stats", + "utils" + ], + "Hash": "9e8f1f54eb492b1af425b1206220a278" + }, + "spatstat.random": { + "Package": "spatstat.random", + "Version": "3.3-1", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "grDevices", + "methods", + "spatstat.data", + "spatstat.geom", + "spatstat.univar", + "spatstat.utils", + "stats", + "utils" + ], + "Hash": "73b89da6fe26aa529564a8dbb5ebbc8a" + }, + "spatstat.sparse": { + "Package": "spatstat.sparse", + "Version": "3.1-0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "Matrix", + "R", + "abind", + "methods", + "spatstat.utils", + "stats", + "tensor", + "utils" + ], + "Hash": "3a0f41a2a77847f2bc1a909160cace56" + }, + "spatstat.univar": { + "Package": "spatstat.univar", + "Version": "3.0-0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "spatstat.utils", + "stats" + ], + "Hash": "1af5f385ec0df813c9d1bff8859b1056" + }, + "spatstat.utils": { + "Package": "spatstat.utils", + "Version": "3.0-5", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "grDevices", + "graphics", + "methods", + "stats", + "utils" + ], + "Hash": "b7af29c1a4e649734ac1d9b423d762c9" + }, + "stringi": { + "Package": "stringi", + "Version": "1.8.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "stats", + "tools", + "utils" + ], + "Hash": "39e1144fd75428983dc3f63aa53dfa91" + }, + "stringr": { + "Package": "stringr", + "Version": "1.5.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "glue", + "lifecycle", + "magrittr", + "rlang", + "stringi", + "vctrs" + ], + "Hash": "960e2ae9e09656611e0b8214ad543207" + }, + "survival": { + "Package": "survival", + "Version": "3.7-0", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "Matrix", + "R", + "graphics", + "methods", + "splines", + "stats", + "utils" + ], + "Hash": "5aaa9cbaf4aba20f8e06fdea1850a398" + }, + "sys": { + "Package": "sys", + "Version": "3.4.2", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "3a1be13d68d47a8cd0bfd74739ca1555" + }, + "systemfonts": { + "Package": "systemfonts", + "Version": "1.1.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cpp11", + "lifecycle" + ], + "Hash": "213b6b8ed5afbf934843e6c3b090d418" + }, + "tensor": { + "Package": "tensor", + "Version": "1.5", + "Source": "Repository", + "Repository": "RSPM", + "Hash": "25cfab6cf405c15bccf7e69ec39df090" + }, + "textshaping": { + "Package": "textshaping", + "Version": "0.4.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cpp11", + "lifecycle", + "systemfonts" + ], + "Hash": "5142f8bc78ed3d819d26461b641627ce" + }, + "tibble": { + "Package": "tibble", + "Version": "3.2.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "fansi", + "lifecycle", + "magrittr", + "methods", + "pillar", + "pkgconfig", + "rlang", + "utils", + "vctrs" + ], + "Hash": "a84e2cc86d07289b3b6f5069df7a004c" + }, + "tidyr": { + "Package": "tidyr", + "Version": "1.3.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "cpp11", + "dplyr", + "glue", + "lifecycle", + "magrittr", + "purrr", + "rlang", + "stringr", + "tibble", + "tidyselect", + "utils", + "vctrs" + ], + "Hash": "915fb7ce036c22a6a33b5a8adb712eb1" + }, + "tidyselect": { + "Package": "tidyselect", + "Version": "1.2.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "glue", + "lifecycle", + "rlang", + "vctrs", + "withr" + ], + "Hash": "829f27b9c4919c16b593794a6344d6c0" + }, + "tidyverse": { + "Package": "tidyverse", + "Version": "2.0.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "broom", + "cli", + "conflicted", + "dbplyr", + "dplyr", + "dtplyr", + "forcats", + "ggplot2", + "googledrive", + "googlesheets4", + "haven", + "hms", + "httr", + "jsonlite", + "lubridate", + "magrittr", + "modelr", + "pillar", + "purrr", + "ragg", + "readr", + "readxl", + "reprex", + "rlang", + "rstudioapi", + "rvest", + "stringr", + "tibble", + "tidyr", + "xml2" + ], + "Hash": "c328568cd14ea89a83bd4ca7f54ae07e" + }, + "timechange": { + "Package": "timechange", + "Version": "0.3.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cpp11" + ], + "Hash": "c5f3c201b931cd6474d17d8700ccb1c8" + }, + "tinytex": { + "Package": "tinytex", + "Version": "0.52", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "xfun" + ], + "Hash": "cfbad971a71f0e27cec22e544a08bc3b" + }, + "tzdb": { + "Package": "tzdb", + "Version": "0.4.0", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cpp11" + ], + "Hash": "f561504ec2897f4d46f0c7657e488ae1" + }, + "utf8": { + "Package": "utf8", + "Version": "1.2.4", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "62b65c52671e6665f803ff02954446e9" + }, + "uuid": { + "Package": "uuid", + "Version": "1.2-1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "34e965e62a41fcafb1ca60e9b142085b" + }, + "uwot": { + "Package": "uwot", + "Version": "0.2.2", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "FNN", + "Matrix", + "RSpectra", + "Rcpp", + "RcppAnnoy", + "RcppProgress", + "dqrng", + "irlba", + "methods" + ], + "Hash": "f693a0ca6d34b02eb432326388021805" + }, + "vctrs": { + "Package": "vctrs", + "Version": "0.6.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "glue", + "lifecycle", + "rlang" + ], + "Hash": "c03fa420630029418f7e6da3667aac4a" + }, + "viridisLite": { + "Package": "viridisLite", + "Version": "0.4.2", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R" + ], + "Hash": "c826c7c4241b6fc89ff55aaea3fa7491" + }, + "vroom": { + "Package": "vroom", + "Version": "1.6.5", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "bit64", + "cli", + "cpp11", + "crayon", + "glue", + "hms", + "lifecycle", + "methods", + "progress", + "rlang", + "stats", + "tibble", + "tidyselect", + "tzdb", + "vctrs", + "withr" + ], + "Hash": "390f9315bc0025be03012054103d227c" + }, + "withr": { + "Package": "withr", + "Version": "3.0.1", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "grDevices", + "graphics" + ], + "Hash": "07909200e8bbe90426fbfeb73e1e27aa" + }, + "xfun": { + "Package": "xfun", + "Version": "0.46", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "grDevices", + "stats", + "tools" + ], + "Hash": "00ce32f398db0415dde61abfef11300c" + }, + "xml2": { + "Package": "xml2", + "Version": "1.3.6", + "Source": "Repository", + "Repository": "CRAN", + "Requirements": [ + "R", + "cli", + "methods", + "rlang" + ], + "Hash": "1d0336142f4cd25d8d23cd3ba7a8fb61" + }, + "xtable": { + "Package": "xtable", + "Version": "1.8-4", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "stats", + "utils" + ], + "Hash": "b8acdf8af494d9ec19ccb2481a9b11c2" + }, + "yaml": { + "Package": "yaml", + "Version": "2.3.10", + "Source": "Repository", + "Repository": "CRAN", + "Hash": "51dab85c6c98e50a18d7551e9d49f76c" + }, + "zlibbioc": { + "Package": "zlibbioc", + "Version": "1.50.0", + "Source": "Repository", + "Repository": "https://bioconductor.org/packages/3.19/bioc", + "Hash": "3db02e3c460e1c852365df117a2b441b" + }, + "zoo": { + "Package": "zoo", + "Version": "1.8-12", + "Source": "Repository", + "Repository": "RSPM", + "Requirements": [ + "R", + "grDevices", + "graphics", + "lattice", + "stats", + "utils" + ], + "Hash": "5c715954112b45499fb1dadc6ee6ee3e" + } + } +} diff --git a/analyses/cell-type-wilms-tumor-06/renv/.gitignore b/analyses/cell-type-wilms-tumor-06/renv/.gitignore new file mode 100644 index 000000000..0ec0cbba2 --- /dev/null +++ b/analyses/cell-type-wilms-tumor-06/renv/.gitignore @@ -0,0 +1,7 @@ +library/ +local/ +cellar/ +lock/ +python/ +sandbox/ +staging/ diff --git a/analyses/cell-type-wilms-tumor-06/renv/activate.R b/analyses/cell-type-wilms-tumor-06/renv/activate.R new file mode 100644 index 000000000..d13f9932a --- /dev/null +++ b/analyses/cell-type-wilms-tumor-06/renv/activate.R @@ -0,0 +1,1220 @@ + +local({ + + # the requested version of renv + version <- "1.0.7" + attr(version, "sha") <- NULL + + # the project directory + project <- Sys.getenv("RENV_PROJECT") + if (!nzchar(project)) + project <- getwd() + + # use start-up diagnostics if enabled + diagnostics <- Sys.getenv("RENV_STARTUP_DIAGNOSTICS", unset = "FALSE") + if (diagnostics) { + start <- Sys.time() + profile <- tempfile("renv-startup-", fileext = ".Rprof") + utils::Rprof(profile) + on.exit({ + utils::Rprof(NULL) + elapsed <- signif(difftime(Sys.time(), start, units = "auto"), digits = 2L) + writeLines(sprintf("- renv took %s to run the autoloader.", format(elapsed))) + writeLines(sprintf("- Profile: %s", profile)) + print(utils::summaryRprof(profile)) + }, add = TRUE) + } + + # figure out whether the autoloader is enabled + enabled <- local({ + + # first, check config option + override <- getOption("renv.config.autoloader.enabled") + if (!is.null(override)) + return(override) + + # if we're being run in a context where R_LIBS is already set, + # don't load -- presumably we're being run as a sub-process and + # the parent process has already set up library paths for us + rcmd <- Sys.getenv("R_CMD", unset = NA) + rlibs <- Sys.getenv("R_LIBS", unset = NA) + if (!is.na(rlibs) && !is.na(rcmd)) + return(FALSE) + + # next, check environment variables + # TODO: prefer using the configuration one in the future + envvars <- c( + "RENV_CONFIG_AUTOLOADER_ENABLED", + "RENV_AUTOLOADER_ENABLED", + "RENV_ACTIVATE_PROJECT" + ) + + for (envvar in envvars) { + envval <- Sys.getenv(envvar, unset = NA) + if (!is.na(envval)) + return(tolower(envval) %in% c("true", "t", "1")) + } + + # enable by default + TRUE + + }) + + # bail if we're not enabled + if (!enabled) { + + # if we're not enabled, we might still need to manually load + # the user profile here + profile <- Sys.getenv("R_PROFILE_USER", unset = "~/.Rprofile") + if (file.exists(profile)) { + cfg <- Sys.getenv("RENV_CONFIG_USER_PROFILE", unset = "TRUE") + if (tolower(cfg) %in% c("true", "t", "1")) + sys.source(profile, envir = globalenv()) + } + + return(FALSE) + + } + + # avoid recursion + if (identical(getOption("renv.autoloader.running"), TRUE)) { + warning("ignoring recursive attempt to run renv autoloader") + return(invisible(TRUE)) + } + + # signal that we're loading renv during R startup + options(renv.autoloader.running = TRUE) + on.exit(options(renv.autoloader.running = NULL), add = TRUE) + + # signal that we've consented to use renv + options(renv.consent = TRUE) + + # load the 'utils' package eagerly -- this ensures that renv shims, which + # mask 'utils' packages, will come first on the search path + library(utils, lib.loc = .Library) + + # unload renv if it's already been loaded + if ("renv" %in% loadedNamespaces()) + unloadNamespace("renv") + + # load bootstrap tools + `%||%` <- function(x, y) { + if (is.null(x)) y else x + } + + catf <- function(fmt, ..., appendLF = TRUE) { + + quiet <- getOption("renv.bootstrap.quiet", default = FALSE) + if (quiet) + return(invisible()) + + msg <- sprintf(fmt, ...) + cat(msg, file = stdout(), sep = if (appendLF) "\n" else "") + + invisible(msg) + + } + + header <- function(label, + ..., + prefix = "#", + suffix = "-", + n = min(getOption("width"), 78)) + { + label <- sprintf(label, ...) + n <- max(n - nchar(label) - nchar(prefix) - 2L, 8L) + if (n <= 0) + return(paste(prefix, label)) + + tail <- paste(rep.int(suffix, n), collapse = "") + paste0(prefix, " ", label, " ", tail) + + } + + heredoc <- function(text, leave = 0) { + + # remove leading, trailing whitespace + trimmed <- gsub("^\\s*\\n|\\n\\s*$", "", text) + + # split into lines + lines <- strsplit(trimmed, "\n", fixed = TRUE)[[1L]] + + # compute common indent + indent <- regexpr("[^[:space:]]", lines) + common <- min(setdiff(indent, -1L)) - leave + paste(substring(lines, common), collapse = "\n") + + } + + startswith <- function(string, prefix) { + substring(string, 1, nchar(prefix)) == prefix + } + + bootstrap <- function(version, library) { + + friendly <- renv_bootstrap_version_friendly(version) + section <- header(sprintf("Bootstrapping renv %s", friendly)) + catf(section) + + # attempt to download renv + catf("- Downloading renv ... ", appendLF = FALSE) + withCallingHandlers( + tarball <- renv_bootstrap_download(version), + error = function(err) { + catf("FAILED") + stop("failed to download:\n", conditionMessage(err)) + } + ) + catf("OK") + on.exit(unlink(tarball), add = TRUE) + + # now attempt to install + catf("- Installing renv ... ", appendLF = FALSE) + withCallingHandlers( + status <- renv_bootstrap_install(version, tarball, library), + error = function(err) { + catf("FAILED") + stop("failed to install:\n", conditionMessage(err)) + } + ) + catf("OK") + + # add empty line to break up bootstrapping from normal output + catf("") + + return(invisible()) + } + + renv_bootstrap_tests_running <- function() { + getOption("renv.tests.running", default = FALSE) + } + + renv_bootstrap_repos <- function() { + + # get CRAN repository + cran <- getOption("renv.repos.cran", "https://cloud.r-project.org") + + # check for repos override + repos <- Sys.getenv("RENV_CONFIG_REPOS_OVERRIDE", unset = NA) + if (!is.na(repos)) { + + # check for RSPM; if set, use a fallback repository for renv + rspm <- Sys.getenv("RSPM", unset = NA) + if (identical(rspm, repos)) + repos <- c(RSPM = rspm, CRAN = cran) + + return(repos) + + } + + # check for lockfile repositories + repos <- tryCatch(renv_bootstrap_repos_lockfile(), error = identity) + if (!inherits(repos, "error") && length(repos)) + return(repos) + + # retrieve current repos + repos <- getOption("repos") + + # ensure @CRAN@ entries are resolved + repos[repos == "@CRAN@"] <- cran + + # add in renv.bootstrap.repos if set + default <- c(FALLBACK = "https://cloud.r-project.org") + extra <- getOption("renv.bootstrap.repos", default = default) + repos <- c(repos, extra) + + # remove duplicates that might've snuck in + dupes <- duplicated(repos) | duplicated(names(repos)) + repos[!dupes] + + } + + renv_bootstrap_repos_lockfile <- function() { + + lockpath <- Sys.getenv("RENV_PATHS_LOCKFILE", unset = "renv.lock") + if (!file.exists(lockpath)) + return(NULL) + + lockfile <- tryCatch(renv_json_read(lockpath), error = identity) + if (inherits(lockfile, "error")) { + warning(lockfile) + return(NULL) + } + + repos <- lockfile$R$Repositories + if (length(repos) == 0) + return(NULL) + + keys <- vapply(repos, `[[`, "Name", FUN.VALUE = character(1)) + vals <- vapply(repos, `[[`, "URL", FUN.VALUE = character(1)) + names(vals) <- keys + + return(vals) + + } + + renv_bootstrap_download <- function(version) { + + sha <- attr(version, "sha", exact = TRUE) + + methods <- if (!is.null(sha)) { + + # attempting to bootstrap a development version of renv + c( + function() renv_bootstrap_download_tarball(sha), + function() renv_bootstrap_download_github(sha) + ) + + } else { + + # attempting to bootstrap a release version of renv + c( + function() renv_bootstrap_download_tarball(version), + function() renv_bootstrap_download_cran_latest(version), + function() renv_bootstrap_download_cran_archive(version) + ) + + } + + for (method in methods) { + path <- tryCatch(method(), error = identity) + if (is.character(path) && file.exists(path)) + return(path) + } + + stop("All download methods failed") + + } + + renv_bootstrap_download_impl <- function(url, destfile) { + + mode <- "wb" + + # https://bugs.r-project.org/bugzilla/show_bug.cgi?id=17715 + fixup <- + Sys.info()[["sysname"]] == "Windows" && + substring(url, 1L, 5L) == "file:" + + if (fixup) + mode <- "w+b" + + args <- list( + url = url, + destfile = destfile, + mode = mode, + quiet = TRUE + ) + + if ("headers" %in% names(formals(utils::download.file))) + args$headers <- renv_bootstrap_download_custom_headers(url) + + do.call(utils::download.file, args) + + } + + renv_bootstrap_download_custom_headers <- function(url) { + + headers <- getOption("renv.download.headers") + if (is.null(headers)) + return(character()) + + if (!is.function(headers)) + stopf("'renv.download.headers' is not a function") + + headers <- headers(url) + if (length(headers) == 0L) + return(character()) + + if (is.list(headers)) + headers <- unlist(headers, recursive = FALSE, use.names = TRUE) + + ok <- + is.character(headers) && + is.character(names(headers)) && + all(nzchar(names(headers))) + + if (!ok) + stop("invocation of 'renv.download.headers' did not return a named character vector") + + headers + + } + + renv_bootstrap_download_cran_latest <- function(version) { + + spec <- renv_bootstrap_download_cran_latest_find(version) + type <- spec$type + repos <- spec$repos + + baseurl <- utils::contrib.url(repos = repos, type = type) + ext <- if (identical(type, "source")) + ".tar.gz" + else if (Sys.info()[["sysname"]] == "Windows") + ".zip" + else + ".tgz" + name <- sprintf("renv_%s%s", version, ext) + url <- paste(baseurl, name, sep = "/") + + destfile <- file.path(tempdir(), name) + status <- tryCatch( + renv_bootstrap_download_impl(url, destfile), + condition = identity + ) + + if (inherits(status, "condition")) + return(FALSE) + + # report success and return + destfile + + } + + renv_bootstrap_download_cran_latest_find <- function(version) { + + # check whether binaries are supported on this system + binary <- + getOption("renv.bootstrap.binary", default = TRUE) && + !identical(.Platform$pkgType, "source") && + !identical(getOption("pkgType"), "source") && + Sys.info()[["sysname"]] %in% c("Darwin", "Windows") + + types <- c(if (binary) "binary", "source") + + # iterate over types + repositories + for (type in types) { + for (repos in renv_bootstrap_repos()) { + + # retrieve package database + db <- tryCatch( + as.data.frame( + utils::available.packages(type = type, repos = repos), + stringsAsFactors = FALSE + ), + error = identity + ) + + if (inherits(db, "error")) + next + + # check for compatible entry + entry <- db[db$Package %in% "renv" & db$Version %in% version, ] + if (nrow(entry) == 0) + next + + # found it; return spec to caller + spec <- list(entry = entry, type = type, repos = repos) + return(spec) + + } + } + + # if we got here, we failed to find renv + fmt <- "renv %s is not available from your declared package repositories" + stop(sprintf(fmt, version)) + + } + + renv_bootstrap_download_cran_archive <- function(version) { + + name <- sprintf("renv_%s.tar.gz", version) + repos <- renv_bootstrap_repos() + urls <- file.path(repos, "src/contrib/Archive/renv", name) + destfile <- file.path(tempdir(), name) + + for (url in urls) { + + status <- tryCatch( + renv_bootstrap_download_impl(url, destfile), + condition = identity + ) + + if (identical(status, 0L)) + return(destfile) + + } + + return(FALSE) + + } + + renv_bootstrap_download_tarball <- function(version) { + + # if the user has provided the path to a tarball via + # an environment variable, then use it + tarball <- Sys.getenv("RENV_BOOTSTRAP_TARBALL", unset = NA) + if (is.na(tarball)) + return() + + # allow directories + if (dir.exists(tarball)) { + name <- sprintf("renv_%s.tar.gz", version) + tarball <- file.path(tarball, name) + } + + # bail if it doesn't exist + if (!file.exists(tarball)) { + + # let the user know we weren't able to honour their request + fmt <- "- RENV_BOOTSTRAP_TARBALL is set (%s) but does not exist." + msg <- sprintf(fmt, tarball) + warning(msg) + + # bail + return() + + } + + catf("- Using local tarball '%s'.", tarball) + tarball + + } + + renv_bootstrap_download_github <- function(version) { + + enabled <- Sys.getenv("RENV_BOOTSTRAP_FROM_GITHUB", unset = "TRUE") + if (!identical(enabled, "TRUE")) + return(FALSE) + + # prepare download options + pat <- Sys.getenv("GITHUB_PAT") + if (nzchar(Sys.which("curl")) && nzchar(pat)) { + fmt <- "--location --fail --header \"Authorization: token %s\"" + extra <- sprintf(fmt, pat) + saved <- options("download.file.method", "download.file.extra") + options(download.file.method = "curl", download.file.extra = extra) + on.exit(do.call(base::options, saved), add = TRUE) + } else if (nzchar(Sys.which("wget")) && nzchar(pat)) { + fmt <- "--header=\"Authorization: token %s\"" + extra <- sprintf(fmt, pat) + saved <- options("download.file.method", "download.file.extra") + options(download.file.method = "wget", download.file.extra = extra) + on.exit(do.call(base::options, saved), add = TRUE) + } + + url <- file.path("https://api.github.com/repos/rstudio/renv/tarball", version) + name <- sprintf("renv_%s.tar.gz", version) + destfile <- file.path(tempdir(), name) + + status <- tryCatch( + renv_bootstrap_download_impl(url, destfile), + condition = identity + ) + + if (!identical(status, 0L)) + return(FALSE) + + renv_bootstrap_download_augment(destfile) + + return(destfile) + + } + + # Add Sha to DESCRIPTION. This is stop gap until #890, after which we + # can use renv::install() to fully capture metadata. + renv_bootstrap_download_augment <- function(destfile) { + sha <- renv_bootstrap_git_extract_sha1_tar(destfile) + if (is.null(sha)) { + return() + } + + # Untar + tempdir <- tempfile("renv-github-") + on.exit(unlink(tempdir, recursive = TRUE), add = TRUE) + untar(destfile, exdir = tempdir) + pkgdir <- dir(tempdir, full.names = TRUE)[[1]] + + # Modify description + desc_path <- file.path(pkgdir, "DESCRIPTION") + desc_lines <- readLines(desc_path) + remotes_fields <- c( + "RemoteType: github", + "RemoteHost: api.github.com", + "RemoteRepo: renv", + "RemoteUsername: rstudio", + "RemotePkgRef: rstudio/renv", + paste("RemoteRef: ", sha), + paste("RemoteSha: ", sha) + ) + writeLines(c(desc_lines[desc_lines != ""], remotes_fields), con = desc_path) + + # Re-tar + local({ + old <- setwd(tempdir) + on.exit(setwd(old), add = TRUE) + + tar(destfile, compression = "gzip") + }) + invisible() + } + + # Extract the commit hash from a git archive. Git archives include the SHA1 + # hash as the comment field of the tarball pax extended header + # (see https://www.kernel.org/pub/software/scm/git/docs/git-archive.html) + # For GitHub archives this should be the first header after the default one + # (512 byte) header. + renv_bootstrap_git_extract_sha1_tar <- function(bundle) { + + # open the bundle for reading + # We use gzcon for everything because (from ?gzcon) + # > Reading from a connection which does not supply a 'gzip' magic + # > header is equivalent to reading from the original connection + conn <- gzcon(file(bundle, open = "rb", raw = TRUE)) + on.exit(close(conn)) + + # The default pax header is 512 bytes long and the first pax extended header + # with the comment should be 51 bytes long + # `52 comment=` (11 chars) + 40 byte SHA1 hash + len <- 0x200 + 0x33 + res <- rawToChar(readBin(conn, "raw", n = len)[0x201:len]) + + if (grepl("^52 comment=", res)) { + sub("52 comment=", "", res) + } else { + NULL + } + } + + renv_bootstrap_install <- function(version, tarball, library) { + + # attempt to install it into project library + dir.create(library, showWarnings = FALSE, recursive = TRUE) + output <- renv_bootstrap_install_impl(library, tarball) + + # check for successful install + status <- attr(output, "status") + if (is.null(status) || identical(status, 0L)) + return(status) + + # an error occurred; report it + header <- "installation of renv failed" + lines <- paste(rep.int("=", nchar(header)), collapse = "") + text <- paste(c(header, lines, output), collapse = "\n") + stop(text) + + } + + renv_bootstrap_install_impl <- function(library, tarball) { + + # invoke using system2 so we can capture and report output + bin <- R.home("bin") + exe <- if (Sys.info()[["sysname"]] == "Windows") "R.exe" else "R" + R <- file.path(bin, exe) + + args <- c( + "--vanilla", "CMD", "INSTALL", "--no-multiarch", + "-l", shQuote(path.expand(library)), + shQuote(path.expand(tarball)) + ) + + system2(R, args, stdout = TRUE, stderr = TRUE) + + } + + renv_bootstrap_platform_prefix <- function() { + + # construct version prefix + version <- paste(R.version$major, R.version$minor, sep = ".") + prefix <- paste("R", numeric_version(version)[1, 1:2], sep = "-") + + # include SVN revision for development versions of R + # (to avoid sharing platform-specific artefacts with released versions of R) + devel <- + identical(R.version[["status"]], "Under development (unstable)") || + identical(R.version[["nickname"]], "Unsuffered Consequences") + + if (devel) + prefix <- paste(prefix, R.version[["svn rev"]], sep = "-r") + + # build list of path components + components <- c(prefix, R.version$platform) + + # include prefix if provided by user + prefix <- renv_bootstrap_platform_prefix_impl() + if (!is.na(prefix) && nzchar(prefix)) + components <- c(prefix, components) + + # build prefix + paste(components, collapse = "/") + + } + + renv_bootstrap_platform_prefix_impl <- function() { + + # if an explicit prefix has been supplied, use it + prefix <- Sys.getenv("RENV_PATHS_PREFIX", unset = NA) + if (!is.na(prefix)) + return(prefix) + + # if the user has requested an automatic prefix, generate it + auto <- Sys.getenv("RENV_PATHS_PREFIX_AUTO", unset = NA) + if (is.na(auto) && getRversion() >= "4.4.0") + auto <- "TRUE" + + if (auto %in% c("TRUE", "True", "true", "1")) + return(renv_bootstrap_platform_prefix_auto()) + + # empty string on failure + "" + + } + + renv_bootstrap_platform_prefix_auto <- function() { + + prefix <- tryCatch(renv_bootstrap_platform_os(), error = identity) + if (inherits(prefix, "error") || prefix %in% "unknown") { + + msg <- paste( + "failed to infer current operating system", + "please file a bug report at https://github.com/rstudio/renv/issues", + sep = "; " + ) + + warning(msg) + + } + + prefix + + } + + renv_bootstrap_platform_os <- function() { + + sysinfo <- Sys.info() + sysname <- sysinfo[["sysname"]] + + # handle Windows + macOS up front + if (sysname == "Windows") + return("windows") + else if (sysname == "Darwin") + return("macos") + + # check for os-release files + for (file in c("/etc/os-release", "/usr/lib/os-release")) + if (file.exists(file)) + return(renv_bootstrap_platform_os_via_os_release(file, sysinfo)) + + # check for redhat-release files + if (file.exists("/etc/redhat-release")) + return(renv_bootstrap_platform_os_via_redhat_release()) + + "unknown" + + } + + renv_bootstrap_platform_os_via_os_release <- function(file, sysinfo) { + + # read /etc/os-release + release <- utils::read.table( + file = file, + sep = "=", + quote = c("\"", "'"), + col.names = c("Key", "Value"), + comment.char = "#", + stringsAsFactors = FALSE + ) + + vars <- as.list(release$Value) + names(vars) <- release$Key + + # get os name + os <- tolower(sysinfo[["sysname"]]) + + # read id + id <- "unknown" + for (field in c("ID", "ID_LIKE")) { + if (field %in% names(vars) && nzchar(vars[[field]])) { + id <- vars[[field]] + break + } + } + + # read version + version <- "unknown" + for (field in c("UBUNTU_CODENAME", "VERSION_CODENAME", "VERSION_ID", "BUILD_ID")) { + if (field %in% names(vars) && nzchar(vars[[field]])) { + version <- vars[[field]] + break + } + } + + # join together + paste(c(os, id, version), collapse = "-") + + } + + renv_bootstrap_platform_os_via_redhat_release <- function() { + + # read /etc/redhat-release + contents <- readLines("/etc/redhat-release", warn = FALSE) + + # infer id + id <- if (grepl("centos", contents, ignore.case = TRUE)) + "centos" + else if (grepl("redhat", contents, ignore.case = TRUE)) + "redhat" + else + "unknown" + + # try to find a version component (very hacky) + version <- "unknown" + + parts <- strsplit(contents, "[[:space:]]")[[1L]] + for (part in parts) { + + nv <- tryCatch(numeric_version(part), error = identity) + if (inherits(nv, "error")) + next + + version <- nv[1, 1] + break + + } + + paste(c("linux", id, version), collapse = "-") + + } + + renv_bootstrap_library_root_name <- function(project) { + + # use project name as-is if requested + asis <- Sys.getenv("RENV_PATHS_LIBRARY_ROOT_ASIS", unset = "FALSE") + if (asis) + return(basename(project)) + + # otherwise, disambiguate based on project's path + id <- substring(renv_bootstrap_hash_text(project), 1L, 8L) + paste(basename(project), id, sep = "-") + + } + + renv_bootstrap_library_root <- function(project) { + + prefix <- renv_bootstrap_profile_prefix() + + path <- Sys.getenv("RENV_PATHS_LIBRARY", unset = NA) + if (!is.na(path)) + return(paste(c(path, prefix), collapse = "/")) + + path <- renv_bootstrap_library_root_impl(project) + if (!is.null(path)) { + name <- renv_bootstrap_library_root_name(project) + return(paste(c(path, prefix, name), collapse = "/")) + } + + renv_bootstrap_paths_renv("library", project = project) + + } + + renv_bootstrap_library_root_impl <- function(project) { + + root <- Sys.getenv("RENV_PATHS_LIBRARY_ROOT", unset = NA) + if (!is.na(root)) + return(root) + + type <- renv_bootstrap_project_type(project) + if (identical(type, "package")) { + userdir <- renv_bootstrap_user_dir() + return(file.path(userdir, "library")) + } + + } + + renv_bootstrap_validate_version <- function(version, description = NULL) { + + # resolve description file + # + # avoid passing lib.loc to `packageDescription()` below, since R will + # use the loaded version of the package by default anyhow. note that + # this function should only be called after 'renv' is loaded + # https://github.com/rstudio/renv/issues/1625 + description <- description %||% packageDescription("renv") + + # check whether requested version 'version' matches loaded version of renv + sha <- attr(version, "sha", exact = TRUE) + valid <- if (!is.null(sha)) + renv_bootstrap_validate_version_dev(sha, description) + else + renv_bootstrap_validate_version_release(version, description) + + if (valid) + return(TRUE) + + # the loaded version of renv doesn't match the requested version; + # give the user instructions on how to proceed + dev <- identical(description[["RemoteType"]], "github") + remote <- if (dev) + paste("rstudio/renv", description[["RemoteSha"]], sep = "@") + else + paste("renv", description[["Version"]], sep = "@") + + # display both loaded version + sha if available + friendly <- renv_bootstrap_version_friendly( + version = description[["Version"]], + sha = if (dev) description[["RemoteSha"]] + ) + + fmt <- heredoc(" + renv %1$s was loaded from project library, but this project is configured to use renv %2$s. + - Use `renv::record(\"%3$s\")` to record renv %1$s in the lockfile. + - Use `renv::restore(packages = \"renv\")` to install renv %2$s into the project library. + ") + catf(fmt, friendly, renv_bootstrap_version_friendly(version), remote) + + FALSE + + } + + renv_bootstrap_validate_version_dev <- function(version, description) { + expected <- description[["RemoteSha"]] + is.character(expected) && startswith(expected, version) + } + + renv_bootstrap_validate_version_release <- function(version, description) { + expected <- description[["Version"]] + is.character(expected) && identical(expected, version) + } + + renv_bootstrap_hash_text <- function(text) { + + hashfile <- tempfile("renv-hash-") + on.exit(unlink(hashfile), add = TRUE) + + writeLines(text, con = hashfile) + tools::md5sum(hashfile) + + } + + renv_bootstrap_load <- function(project, libpath, version) { + + # try to load renv from the project library + if (!requireNamespace("renv", lib.loc = libpath, quietly = TRUE)) + return(FALSE) + + # warn if the version of renv loaded does not match + renv_bootstrap_validate_version(version) + + # execute renv load hooks, if any + hooks <- getHook("renv::autoload") + for (hook in hooks) + if (is.function(hook)) + tryCatch(hook(), error = warnify) + + # load the project + renv::load(project) + + TRUE + + } + + renv_bootstrap_profile_load <- function(project) { + + # if RENV_PROFILE is already set, just use that + profile <- Sys.getenv("RENV_PROFILE", unset = NA) + if (!is.na(profile) && nzchar(profile)) + return(profile) + + # check for a profile file (nothing to do if it doesn't exist) + path <- renv_bootstrap_paths_renv("profile", profile = FALSE, project = project) + if (!file.exists(path)) + return(NULL) + + # read the profile, and set it if it exists + contents <- readLines(path, warn = FALSE) + if (length(contents) == 0L) + return(NULL) + + # set RENV_PROFILE + profile <- contents[[1L]] + if (!profile %in% c("", "default")) + Sys.setenv(RENV_PROFILE = profile) + + profile + + } + + renv_bootstrap_profile_prefix <- function() { + profile <- renv_bootstrap_profile_get() + if (!is.null(profile)) + return(file.path("profiles", profile, "renv")) + } + + renv_bootstrap_profile_get <- function() { + profile <- Sys.getenv("RENV_PROFILE", unset = "") + renv_bootstrap_profile_normalize(profile) + } + + renv_bootstrap_profile_set <- function(profile) { + profile <- renv_bootstrap_profile_normalize(profile) + if (is.null(profile)) + Sys.unsetenv("RENV_PROFILE") + else + Sys.setenv(RENV_PROFILE = profile) + } + + renv_bootstrap_profile_normalize <- function(profile) { + + if (is.null(profile) || profile %in% c("", "default")) + return(NULL) + + profile + + } + + renv_bootstrap_path_absolute <- function(path) { + + substr(path, 1L, 1L) %in% c("~", "/", "\\") || ( + substr(path, 1L, 1L) %in% c(letters, LETTERS) && + substr(path, 2L, 3L) %in% c(":/", ":\\") + ) + + } + + renv_bootstrap_paths_renv <- function(..., profile = TRUE, project = NULL) { + renv <- Sys.getenv("RENV_PATHS_RENV", unset = "renv") + root <- if (renv_bootstrap_path_absolute(renv)) NULL else project + prefix <- if (profile) renv_bootstrap_profile_prefix() + components <- c(root, renv, prefix, ...) + paste(components, collapse = "/") + } + + renv_bootstrap_project_type <- function(path) { + + descpath <- file.path(path, "DESCRIPTION") + if (!file.exists(descpath)) + return("unknown") + + desc <- tryCatch( + read.dcf(descpath, all = TRUE), + error = identity + ) + + if (inherits(desc, "error")) + return("unknown") + + type <- desc$Type + if (!is.null(type)) + return(tolower(type)) + + package <- desc$Package + if (!is.null(package)) + return("package") + + "unknown" + + } + + renv_bootstrap_user_dir <- function() { + dir <- renv_bootstrap_user_dir_impl() + path.expand(chartr("\\", "/", dir)) + } + + renv_bootstrap_user_dir_impl <- function() { + + # use local override if set + override <- getOption("renv.userdir.override") + if (!is.null(override)) + return(override) + + # use R_user_dir if available + tools <- asNamespace("tools") + if (is.function(tools$R_user_dir)) + return(tools$R_user_dir("renv", "cache")) + + # try using our own backfill for older versions of R + envvars <- c("R_USER_CACHE_DIR", "XDG_CACHE_HOME") + for (envvar in envvars) { + root <- Sys.getenv(envvar, unset = NA) + if (!is.na(root)) + return(file.path(root, "R/renv")) + } + + # use platform-specific default fallbacks + if (Sys.info()[["sysname"]] == "Windows") + file.path(Sys.getenv("LOCALAPPDATA"), "R/cache/R/renv") + else if (Sys.info()[["sysname"]] == "Darwin") + "~/Library/Caches/org.R-project.R/R/renv" + else + "~/.cache/R/renv" + + } + + renv_bootstrap_version_friendly <- function(version, shafmt = NULL, sha = NULL) { + sha <- sha %||% attr(version, "sha", exact = TRUE) + parts <- c(version, sprintf(shafmt %||% " [sha: %s]", substring(sha, 1L, 7L))) + paste(parts, collapse = "") + } + + renv_bootstrap_exec <- function(project, libpath, version) { + if (!renv_bootstrap_load(project, libpath, version)) + renv_bootstrap_run(version, libpath) + } + + renv_bootstrap_run <- function(version, libpath) { + + # perform bootstrap + bootstrap(version, libpath) + + # exit early if we're just testing bootstrap + if (!is.na(Sys.getenv("RENV_BOOTSTRAP_INSTALL_ONLY", unset = NA))) + return(TRUE) + + # try again to load + if (requireNamespace("renv", lib.loc = libpath, quietly = TRUE)) { + return(renv::load(project = getwd())) + } + + # failed to download or load renv; warn the user + msg <- c( + "Failed to find an renv installation: the project will not be loaded.", + "Use `renv::activate()` to re-initialize the project." + ) + + warning(paste(msg, collapse = "\n"), call. = FALSE) + + } + + renv_json_read <- function(file = NULL, text = NULL) { + + jlerr <- NULL + + # if jsonlite is loaded, use that instead + if ("jsonlite" %in% loadedNamespaces()) { + + json <- tryCatch(renv_json_read_jsonlite(file, text), error = identity) + if (!inherits(json, "error")) + return(json) + + jlerr <- json + + } + + # otherwise, fall back to the default JSON reader + json <- tryCatch(renv_json_read_default(file, text), error = identity) + if (!inherits(json, "error")) + return(json) + + # report an error + if (!is.null(jlerr)) + stop(jlerr) + else + stop(json) + + } + + renv_json_read_jsonlite <- function(file = NULL, text = NULL) { + text <- paste(text %||% readLines(file, warn = FALSE), collapse = "\n") + jsonlite::fromJSON(txt = text, simplifyVector = FALSE) + } + + renv_json_read_default <- function(file = NULL, text = NULL) { + + # find strings in the JSON + text <- paste(text %||% readLines(file, warn = FALSE), collapse = "\n") + pattern <- '["](?:(?:\\\\.)|(?:[^"\\\\]))*?["]' + locs <- gregexpr(pattern, text, perl = TRUE)[[1]] + + # if any are found, replace them with placeholders + replaced <- text + strings <- character() + replacements <- character() + + if (!identical(c(locs), -1L)) { + + # get the string values + starts <- locs + ends <- locs + attr(locs, "match.length") - 1L + strings <- substring(text, starts, ends) + + # only keep those requiring escaping + strings <- grep("[[\\]{}:]", strings, perl = TRUE, value = TRUE) + + # compute replacements + replacements <- sprintf('"\032%i\032"', seq_along(strings)) + + # replace the strings + mapply(function(string, replacement) { + replaced <<- sub(string, replacement, replaced, fixed = TRUE) + }, strings, replacements) + + } + + # transform the JSON into something the R parser understands + transformed <- replaced + transformed <- gsub("{}", "`names<-`(list(), character())", transformed, fixed = TRUE) + transformed <- gsub("[[{]", "list(", transformed, perl = TRUE) + transformed <- gsub("[]}]", ")", transformed, perl = TRUE) + transformed <- gsub(":", "=", transformed, fixed = TRUE) + text <- paste(transformed, collapse = "\n") + + # parse it + json <- parse(text = text, keep.source = FALSE, srcfile = NULL)[[1L]] + + # construct map between source strings, replaced strings + map <- as.character(parse(text = strings)) + names(map) <- as.character(parse(text = replacements)) + + # convert to list + map <- as.list(map) + + # remap strings in object + remapped <- renv_json_read_remap(json, map) + + # evaluate + eval(remapped, envir = baseenv()) + + } + + renv_json_read_remap <- function(json, map) { + + # fix names + if (!is.null(names(json))) { + lhs <- match(names(json), names(map), nomatch = 0L) + rhs <- match(names(map), names(json), nomatch = 0L) + names(json)[rhs] <- map[lhs] + } + + # fix values + if (is.character(json)) + return(map[[json]] %||% json) + + # handle true, false, null + if (is.name(json)) { + text <- as.character(json) + if (text == "true") + return(TRUE) + else if (text == "false") + return(FALSE) + else if (text == "null") + return(NULL) + } + + # recurse + if (is.recursive(json)) { + for (i in seq_along(json)) { + json[i] <- list(renv_json_read_remap(json[[i]], map)) + } + } + + json + + } + + # load the renv profile, if any + renv_bootstrap_profile_load(project) + + # construct path to library root + root <- renv_bootstrap_library_root(project) + + # construct library prefix for platform + prefix <- renv_bootstrap_platform_prefix() + + # construct full libpath + libpath <- file.path(root, prefix) + + # run bootstrap code + renv_bootstrap_exec(project, libpath, version) + + invisible() + +}) diff --git a/analyses/cell-type-wilms-tumor-06/renv/settings.json b/analyses/cell-type-wilms-tumor-06/renv/settings.json new file mode 100644 index 000000000..ffdbb3200 --- /dev/null +++ b/analyses/cell-type-wilms-tumor-06/renv/settings.json @@ -0,0 +1,19 @@ +{ + "bioconductor.version": null, + "external.libraries": [], + "ignored.packages": [], + "package.dependency.fields": [ + "Imports", + "Depends", + "LinkingTo" + ], + "ppm.enabled": null, + "ppm.ignored.urls": [], + "r.version": null, + "snapshot.type": "implicit", + "use.cache": true, + "vcs.ignore.cellar": true, + "vcs.ignore.library": true, + "vcs.ignore.local": true, + "vcs.manage.ignores": true +} diff --git a/analyses/cell-type-wilms-tumor-06/results/README.md b/analyses/cell-type-wilms-tumor-06/results/README.md new file mode 100644 index 000000000..af51c690e --- /dev/null +++ b/analyses/cell-type-wilms-tumor-06/results/README.md @@ -0,0 +1,5 @@ +# Results directory instructions + +Files in the results directory should not be directly committed to the repository. + +Instead, copy results files to an S3 bucket and add a link to the S3 location in this README file. diff --git a/analyses/cell-type-wilms-tumor-06/run-podman-internal.sh b/analyses/cell-type-wilms-tumor-06/run-podman-internal.sh new file mode 100644 index 000000000..d638a786d --- /dev/null +++ b/analyses/cell-type-wilms-tumor-06/run-podman-internal.sh @@ -0,0 +1,21 @@ +# ids defined in image for the rstudio user, if not define as such, it is not possible to login to RStudio +uid=1000 +gid=1000 +# subid ranges on host +subuidSize=$(( $(podman info --format "{{ range .Host.IDMappings.UIDMap }}+{{.Size }}{{end }}" ) - 1 )) +subgidSize=$(( $(podman info --format "{{ range .Host.IDMappings.GIDMap }}+{{.Size }}{{end }}" ) - 1 )) + +# go to the OpenScPCA-analysis folder before mounting $PWD to keep access to OpenScPCA-analysis/data in the R Session +cd \..\..\ + +podman run \ + --name maudp_ScPCA_wilms \ + -e RUNROOTLESS=false \ + --uidmap $uid:0:1 --uidmap 0:1:$uid --uidmap $(($uid+1)):$(($uid+1)):$(($subuidSize-$uid)) \ + --gidmap $gid:0:1 --gidmap 0:1:$gid --gidmap $(($gid+1)):$(($gid+1)):$(($subgidSize-$gid)) \ + --group-add=keep-groups \ + --volume=$PWD/:/home/rstudio \ + -e PASSWORD=$PASSWORD \ + -p 8787:8787 \ + -e TZ=Europe/Vienna \ + openscpca/cell-type-wilms-tumor-06:latest diff --git a/analyses/cell-type-wilms-tumor-06/scratch/.gitkeep b/analyses/cell-type-wilms-tumor-06/scratch/.gitkeep new file mode 100644 index 000000000..e69de29bb diff --git a/analyses/cell-type-wilms-tumor-06/scripts/.gitkeep b/analyses/cell-type-wilms-tumor-06/scripts/.gitkeep new file mode 100644 index 000000000..e69de29bb