Supplementary: Singularity Container AWS Setup - navinlabcode/CSHL_workshops GitHub Wiki

AWS Setup

You'll need a docker login and a AWS login.

Follow this to make an EC2 instance. https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/get-set-up-for-amazon-ec2.html

Set these settings for the EC2 instance.

  • Make with ubuntu
  • Free tier 64bit (x86)
  • t3.xlarge
  • Generated pem
  • 100gb gp2 storage
  • Open inbound port 30000 for tcp

Change permissions for pem key-pair

chmod 400 ~/Downloads/newkey2.pem

ssh -i ubuntu@

ssh -i <YOURPEMKEY> ubuntu@<PUBLICIP>
 #these are my pem keys and public IPs for my EC2 instance, yours will be different

Install singularity, go, and docker. Use docker to pull the ubuntu image

https://docs.sylabs.io/guides/latest/user-guide/quick_start.html

#install basics ##
# Ensure repositories are up-to-date
sudo apt-get update
# Install debian packages for dependencies
sudo apt-get install -y \
   autoconf \
   automake \
   cryptsetup \
   git \
   libfuse-dev \
   libglib2.0-dev \
   libseccomp-dev \
   libtool \
   pkg-config \
   runc \
   squashfs-tools \
   squashfs-tools-ng \
   uidmap \
   wget \
   zlib1g-dev \
   make \
   cmake

sudo apt-get install -y \
    gh

gh auth login
#follow prompts to login to github
## Install go ##
export VERSION=1.21.0 OS=linux ARCH=amd64 && \
  wget https://dl.google.com/go/go$VERSION.$OS-$ARCH.tar.gz && \
  sudo tar -C /usr/local -xzvf go$VERSION.$OS-$ARCH.tar.gz && \
  rm go$VERSION.$OS-$ARCH.tar.gz

echo 'export PATH=/usr/local/go/bin:$PATH' >> ~/.bashrc && \
  source ~/.bashrc

## Install singularity ##
export VERSION=4.1.0 && \
    wget https://github.com/sylabs/singularity/releases/download/v${VERSION}/singularity-ce-${VERSION}.tar.gz && \
    tar -xzf singularity-ce-${VERSION}.tar.gz && \
    cd singularity-ce-${VERSION}

./mconfig && \
    make -C builddir && \
    sudo make -C builddir install

## Install docker and use it to pull the ubuntu image. ##
#Convert ubuntu image to sif file for building our own SIFs
cd 
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh ./get-docker.sh
sudo chmod 666 /var/run/docker.sock

Detailed singularity file creations.

We plan to build singularity files on the AWS server to get around MDA block of conda and conda-forge. Then, we will bootstrap off that image to include the relevant data files once its on GEO. I ended up using

Single cell RNA

Built off the rocker/rstudio docker file to have Rstudio support.

Contains:

  • seuratv5
  • copyKAT
  • inferCNV
  • harmony
  • batchelor
  • singleR
  • fastMNN
  • LIGER
scrna.def

scrna.def

Bootstrap: docker
From: ubuntu:latest

%environment
    # set up all essential environment variables
    export LC_ALL=C
    export PATH=/opt/miniconda3/bin:$PATH
    export PYTHONPATH=/opt/miniconda3/lib/python3.9/:$PYTHONPATH

%post
    # update and install essential dependencies
    #apt-get -y update
    apt-get update && apt-get install -y automake \
    build-essential \
    bzip2 \
    wget \
    git \
    default-jre \
    unzip \
    zlib1g-dev \
    parallel \
    libhdf5-dev \
    libfl-dev \
    cmake \
    libopenblas-dev

    # download, install, and update miniconda3
    wget -O Miniconda3.sh https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
    bash Miniconda3.sh -b -f -p /opt/miniconda3/
    rm Miniconda3.sh

    # install dependencies via conda
    export PATH="/opt/miniconda3/bin:$PATH"
    conda install -y -c conda-forge mamba 
    conda config --add channels bioconda
    conda config --add channels conda-forge
    
    # denotes installed in sandbox without error
    #install additional tools
    mamba install -y -f bioconda::bwa
    mamba install -y -f bioconda::samtools
    mamba install -y -f bioconda::bedtools
    mamba install -y -f bioconda::fastqc
    mamba install -y -f bioconda::multiqc
    mamba install -y -f anaconda::graphviz
    mamba install -y -f conda-forge::parallel
    mamba install -y -f conda-forge::ncurses 

    #install base R packages
    conda install -y -f r-base=4.2 #
    mamba install -y -f conda-forge::r-devtools
    mamba install -y -f conda-forge::r-remotes
    mamba install -y -f conda-forge::r-essentials
    mamba install -y -f conda-forge::r-biocmanager=1.30.19
    mamba install -y -f conda-forge::r-rlang
    mamba install -y -f conda-forge::r-ggplot2 

    #R utility libraries
    R --slave -e 'install.packages("circlize", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("optparse", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("patchwork", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("plyr", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("stringr", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("tidyverse", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("RColorBrewer", repos="http://cran.us.r-project.org")' #
    mamba install -y -f conda-forge::r-hdf5r #

    #Bioconductor packages through conda
    mamba install -y -f bioconda::bioconductor-biocparallel 
    mamba install -y -f bioconda::bioconductor-bsgenome.hsapiens.ucsc.hg38 
    mamba install -y -f bioconda::bioconductor-ensdb.hsapiens.v86 
    mamba install -y -f bioconda::bioconductor-org.hs.eg.db 
    mamba install -y -f bioconda::bioconductor-txdb.hsapiens.ucsc.hg38.knowngene 
    mamba install -y -f bioconda::bioconductor-decoupler 
    mamba install -y -f bioconda::bioconductor-scran 
    mamba install -y -f bioconda::bioconductor-infercnv 
    mamba install -y -f bioconda::bioconductor-complexheatmap 
    mamba install -y -f bioconda::bioconductor-biovizbase 
    mamba install -y -f bioconda::bioconductor-singler 
    mamba install -y -f bioconda::bioconductor-batchelor
    mamba install -y -f bioconda::bioconductor-rccparmadillo
    mamba install -y -f bioconda::bioconductor-batchelor

    #Funner stuff!
    R --slave -e 'install.packages("rliger", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("Seurat", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("harmony", repos="http://cran.us.r-project.org")'
    R --slave -e 'install.packages("R.utils", repos="http://cran.us.r-project.org")'

    #liger stuff
    #mamba install -y -f conda-forge::r-rcpparmadillo
    #mamba install -y -f conda-forge::r-rcpp
    #R --slave -e 'devtools::install_github("welch-lab/RcppPlanc")'
    #wget -O rcppplac.zip https://github.com/welch-lab/RcppPlanc/archive/refs/heads/master.zip
    #R --slave -e 'devtools::install_local("rcppplac.zip", repos = NULL)' 

    #copykat
    #R --slave -e 'devtools::install_github("navinlabcode/copykat")'
    mamba install -y -f conda-forge::r-mcmcpack
    mamba install -y -f conda-forge::r-mixtools
    R --slave -e 'install.packages("dlm", repos="http://cran.us.r-project.org")'
    wget -O copykat.zip https://github.com/navinlabcode/copykat/archive/refs/heads/master.zip
    R --slave -e 'devtools::install_local("copykat.zip", repos = NULL)' 

    #seurat wrappers
    #R --slave -e 'remotes::install_github("satijalab/seurat-wrappers")'
    wget -O seuratwrappers.zip https://github.com/satijalab/seurat-wrappers/archive/refs/heads/master.zip
    R --slave -e 'devtools::install_local("seuratwrappers.zip", repos = NULL)' 
    
    #install scvi-tools for integration
    conda create -n scvi-env \
    python=3.9 \
    conda-forge::scvi-tools \
    conda-forge::scanpy \
    python-igraph \
    leidenalg \
    conda-forge::scikit-misc

#Changelog v0.2:
#added changed r irlba and rmatrix installation due to an error in newer matrix installs. 

%labels
    Author Ryan Mulqueen
    Version v0.2
    MyLabel scRNA
sudo singularity build --sandbox scrna/ docker://ubuntu:latest
sudo singularity shell --writable scrna/

To build the container and push to public repo:

scrna_addfiles.def

scrna_addfiles.def

Bootstrap: localimage
From: scrna.sif

%environment
    # set up all essential environment variables
    export LC_ALL=C
    export PATH=/opt/miniconda3/bin:$PATH
    export PYTHONPATH=/opt/miniconda3/lib/python3.9/:$PYTHONPATH

%files
    /volumes/USR1/yiyun/Project/CSHL_workshop/input/ /input
singularity build --fakeroot scrna2.sif scrna_addfiles.def
sudo singularity build scrna.sif scrna.def

Spatial transcriptomics

Built off the rocker/rstudio docker file to have Rstudio support. Build on AWS and then add files on geo. This is because MDA blocked conda...

Contains:

  • R 4.4
  • seuratv5
  • celltrek
  • hdf5r
  • arrow
  • ggplot2
  • patchwork
  • dplyr
  • remotes
  • Banksy
  • spacexr

Files:

  • Allen Brainspan reference file. Location in container: /data/allen_scRNAseq_ref.Rds
  • Preprocessed Spatial data file. Location in container: /data/braindataset.Rds

Building as sandbox due to github pull issues

sudo singularity build --sandbox spatial/ docker://ubuntu:latest
sudo singularity shell --writable spatial/
spatial.def
Bootstrap: docker
From: ubuntu:latest

%environment
    # set up all essential environment variables
    export LC_ALL=C
    export PATH=/opt/miniconda3/bin:$PATH
    export PYTHONPATH=/opt/miniconda3/lib/python3.9/:$PYTHONPATH

#%files
    #/volumes/USR2/Aatish/Projects/Curiodata/allen_scRNAseq_ref.Rds /data/allen_scRNAseq_ref.Rds
    #/volumes/USR2/Aatish/Projects/Curiodata/PingBraindatasetsketcheddownsampledwithBANKSYandRCTD.rds /data/braindataset.Rds
%post
    # update and install essential dependencies
    apt-get -y update
    apt-get update && apt-get install -y automake \
    build-essential \
    bzip2 \
    wget \
    git \
    default-jre \
    unzip \
    zlib1g-dev \
    parallel \
    libglpk40 \
    gfortran \
    curl

    # download, install, and update miniconda3
    wget -O Miniconda3.sh https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
    bash Miniconda3.sh -b -f -p /opt/miniconda3/
    rm Miniconda3.sh

    # install dependencies via conda
    export PATH="/opt/miniconda3/bin:$PATH"
    conda install -y -c conda-forge mamba 

    #install R packages
    mamba install -y -f conda-forge::r-base=4.4
    mamba install -y -f conda-forge::r-devtools
    mamba install -y -f conda-forge::r-remotes
    mamba install -y -f conda-forge::r-essentials
    mamba install -y -f conda-forge::r-biocmanager=1.30.19
    mamba install -y -f conda-forge::r-rlang
    mamba install -y -f conda-forge::r-ggplot2 

    #R utility libraries
    R --slave -e 'install.packages("remotes", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("circlize", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("optparse", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("patchwork", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("plyr", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("stringr", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("tidyverse", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("RColorBrewer", repos="http://cran.us.r-project.org")' #
    mamba install -y -f conda-forge::r-hdf5r #
    mamba install -y -f conda-forge::r-arrow #

    #Funner stuff!
    R --slave -e 'install.packages("Seurat", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("SeuratObject", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("harmony", repos="http://cran.us.r-project.org")'
    R --slave -e 'install.packages("R.utils", repos="http://cran.us.r-project.org")'

    #SeuratWrappers Install
    mamba install -y -f conda-forge::r-rsvd #
    #R --slave -e 'remotes::install_github("satijalab/seurat-wrappers")'
    wget -O seuratwrappers.zip https://github.com/satijalab/seurat-wrappers/archive/refs/heads/master.zip
    R --slave -e 'devtools::install_local("seuratwrappers.zip", repos = NULL)' 

    #Banksy install
    mamba install -y -f conda-forge::r-dbscan #
    mamba install -y -f conda-forge::r-leidenAlg #
    mamba install -y -f conda-forge::r-mclust #
    mamba install -y -f bioconda::bioconductor-complexheatmap 
    mamba install -y -f conda-forge::r-ggalluvial #
    mamba install -y -f conda-forge::r-pals #
    mamba install -y -f bioconductor-summarizedexperiment #
    mamba install -y -f conda-forge::r-doparallel #
    R --slave -e 'install.packages("RcppHungarian", repos="http://cran.us.r-project.org")'
    #R --slave -e 'remotes::install_github("prabhakarlab/Banksy",ref="devel")'
    wget -O Banksy.tar.gz https://github.com/prabhakarlab/Banksy/archive/refs/tags/v0.1.6.tar.gz
    R --slave -e 'install.packages("Banksy.tar.gz", repos = NULL)' 

    #Spacexr install
    #R --slave -e 'devtools::install_github("dmcable/spacexr", build_vignettes = FALSE)'
    wget -O spacexr.zip https://github.com/dmcable/spacexr/archive/refs/heads/master.zip
    R --slave -e 'install.packages(c("quadprog","fields","CompQuadForm","locfdr","metafor"), repos="http://cran.us.r-project.org")'
    mamba install -y -f conda-forge::r-rfast #
    R --slave -e 'devtools::install_local("spacexr.zip", repos = NULL)' 

%labels
    Author Ryan Mulqueen
    Version v0.1
    MyLabel SpatialTranscriptomics
sudo singularity build spatial.sif spatial/
sudo singularity build spatial.sif spatial.def
spatial_addfiles.def
Bootstrap: localimage
From: spatial.sif

%environment
    # set up all essential environment variables
    export LC_ALL=C
    export PATH=/opt/miniconda3/bin:$PATH
    export PYTHONPATH=/opt/miniconda3/lib/python3.9/:$PYTHONPATH

%files
    /volumes/USR2/Aatish/Projects/Curiodata/allen_scRNAseq_ref.Rds /data/allen_scRNAseq_ref.Rds
    /volumes/USR2/Aatish/Projects/Curiodata/PingBraindatasetsketcheddownsampledwithBANKSYandRCTD.rds /data/braindataset.Rds
singularity build --fakeroot spatial.sif spatial_geofiles.def

Spatial transcriptomics celltrek

Built off the rocker/rstudio docker file to have Rstudio support. Build on AWS and then add files on geo. This is because MDA blocked conda...

Contains: library(hdf5r) library(Seurat) library(dplyr) library(RColorBrewer) library(paletteer) library(CellTrek) library(ggplot2) library(spacexr)

Files: #rds files

Building as sandbox due to github pull issues, then containerizing with env variables. then moving to geo to add files.

sudo singularity build --sandbox spatial_celltrek/ docker://ubuntu:latest
sudo singularity shell --writable spatial_celltrek/
spatial_celltrek.def

spatial.def

Bootstrap: docker
From: ubuntu:latest

%environment
    # set up all essential environment variables
    export LC_ALL=C
    export PATH=/opt/miniconda3/bin:$PATH
    export PYTHONPATH=/opt/miniconda3/lib/python3.9/:$PYTHONPATH

%post
    # update and install essential dependencies
    apt-get -y update
    apt-get update && apt-get install -y automake \
    build-essential \
    bzip2 \
    wget \
    git \
    default-jre \
    unzip \
    zlib1g-dev \
    parallel \
    libglpk40 \
    gfortran \
    curl 

    # download, install, and update miniconda3
    wget -O Miniconda3.sh https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
    bash Miniconda3.sh -b -f -p /opt/miniconda3/
    rm Miniconda3.sh

    # install dependencies via conda
    export PATH="/opt/miniconda3/bin:$PATH"
    conda install -y -c conda-forge mamba 

    #install R packages
    mamba install -y -f conda-forge::r-base=4.1
    mamba install -y -f conda-forge::r-devtools
    mamba install -y -f conda-forge::r-remotes
    mamba install -y -f conda-forge::r-essentials
    mamba install -y -f conda-forge::r-biocmanager=1.30.19
    mamba install -y -f conda-forge::r-rlang
    mamba install -y -f conda-forge::r-ggplot2 

    #R utility libraries
    R --slave -e 'install.packages("remotes", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("circlize", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("optparse", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("patchwork", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("plyr", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("stringr", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("tidyverse", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("RColorBrewer", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("paletteer", repos="http://cran.us.r-project.org")'
    R --slave -e 'install.packages("ggpubr", repos="http://cran.us.r-project.org")'
    mamba install -y -f conda-forge::r-hdf5r 
    mamba install -y -f conda-forge::r-arrow 
    mamba install -y -f conda-forge::r-rcppannoy 
    #Funner stuff!
    R --slave -e 'install.packages("Seurat", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("SeuratObject", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("R.utils", repos="http://cran.us.r-project.org")'

    #SeuratWrappers Install with
    R --slave -e 'remotes::install_github("satijalab/seurat-wrappers")' #able to use direct install_github 

    #Spacexr install
    R --slave -e 'devtools::install_github("dmcable/spacexr", build_vignettes = FALSE)'
    #wget -O spacexr.zip https://github.com/dmcable/spacexr/archive/refs/heads/master.zip
    #R --slave -e 'install.packages(c("quadprog","fields","CompQuadForm","locfdr","metafor"), repos="http://cran.us.r-project.org")'
    #mamba install -y -f conda-forge::r-rfast #
    #R --slave -e 'devtools::install_local("spacexr.zip", repos = NULL)' 

    #Celltrek install
    mamba install -y -f conda-forge::r-ggpubr 
    R --slave -e 'devtools::install_github("navinlabcode/CellTrek")'
    R --slave -e 'remotes::install_version("Seurat", "4.3.0",repos="http://cran.us.r-project.org")'


%labels
    Author Ryan Mulqueen
    Version v0.1
    MyLabel SpatialTranscriptomics_Celltrek
sudo singularity build spatial_celltrek.sif spatial_celltrek/
sudo singularity build spatial.sif spatial.def

build on geo with files

spatial_celltrek_data.def
Bootstrap: localimage
From: spatial_celltrek.sif

%environment
    # set up all essential environment variables
    export LC_ALL=C
    export PATH=/opt/miniconda3/bin:$PATH
    export PYTHONPATH=/opt/miniconda3/lib/python3.9/:$PYTHONPATH

%files
    /volumes/USR1/pingxu/CSHL_course_2024_Summer/Spatial_transcriptomics/DCIS_SC.rds /data/DCIS_SC.rds
    /volumes/USR1/pingxu/CSHL_course_2024_Summer/Spatial_transcriptomics/DCIS_ST.rds /data/DCIS_ST.rds
    /volumes/USR1/pingxu/CSHL_course_2024_Summer/Spatial_transcriptomics/DCIS_traint.rds /data/DCIS_traint.rds
    /volumes/USR1/pingxu/CSHL_course_2024_Summer/Spatial_transcriptomics/DCIS_celltrek.rds /data/DCIS_celltrek.rds
    /volumes/USR1/pingxu/CSHL_course_2024_Summer/Spatial_transcriptomics/Processed_DCIS_ST.rds /data/Processed_DCIS_ST.rds
    /volumes/USR1/pingxu/CSHL_course_2024_Summer/Spatial_transcriptomics/RCTD.rds /data/RCTD.rds 
    /volumes/USR1/pingxu/CSHL_course_2024_Summer/Spatial_transcriptomics/RCTD_full.rds /data/RCTD_full.rds
singularity build --fakeroot spatial_celltrek_2.sif spatial_celltrek_data.def

Single cell DNA

Contains:

  • R 4.2
  • seurat
  • copykit
scdna.def
Bootstrap: docker
From: ubuntu:latest

%environment
    # set up all essential environment variables
    export LC_ALL=C
    export PATH=/opt/miniconda3/bin:$PATH
    export PYTHONPATH=/opt/miniconda3/lib/python3.9/:$PYTHONPATH
    export LC_ALL=C.UTF-8

%post
    # update and install essential dependencies
    apt-get -y update
    apt-get update && apt-get install -y automake \
    build-essential \
    bzip2 \
    wget \
    git \
    default-jre \
    unzip \
    zlib1g-dev \
    parallel \
    libglpk40 \
    gfortran

    
    # download, install, and update miniconda3
    wget -O Miniconda3.sh https://repo.continuum.io/miniconda/Miniconda3-latest-Linux-x86_64.sh
    bash Miniconda3.sh -b -f -p /opt/miniconda3/
    rm Miniconda3.sh


    # install dependencies via conda
    export PATH="/opt/miniconda3/bin:$PATH"
    conda install -y -c conda-forge mamba 
    mamba install -y -f bioconda::samtools #
    mamba install -y -f bioconda::bedtools #
    mamba install -y -f conda-forge::parallel #

    #install R packages
    mamba install -y -f conda-forge::r-base #=4.2
    mamba install -y -f conda-forge::r-devtools
    mamba install -y -f conda-forge::r-tidyverse
    #mamba install -y -f bioconda::bioconductor-ensdb.hsapiens.v86

    #R utility libraries
    R --slave -e 'install.packages("remotes", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("circlize", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("optparse", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("patchwork", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("plyr", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("stringr", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("tidyverse", repos="http://cran.us.r-project.org")' #
    R --slave -e 'install.packages("RColorBrewer", repos="http://cran.us.r-project.org")' #

    R --slave -e 'devtools::install_github("navinlabcode/copykit")'
    conda install -y -f --no-deps conda-forge::r-igraph
    conda install -y -f --no-deps bioconda::bioconductor-bluster
    conda install -y -f --no-deps bioconda::bioconductor-copynumber
    conda install -y -f --no-deps bioconda::bioconductor-ggtree
    wget https://github.com/navinlabcode/copykit/releases/download/v.0.1.2/copykit_0.1.2.tar.gz
    R --slave -e 'install.packages("copykit_0.1.2.tar.gz", repos = NULL)' # the install_github is broken so pulling from archive

%labels
    Author Ryan Mulqueen
    Version v0.1
    MyLabel Copykit 
sudo singularity build scdna.sif scdna.def
scdna_addfiles.def
Bootstrap: localimage
From: scdna.sif

%environment
    # set up all essential environment variables
    export LC_ALL=C
    export PATH=/opt/miniconda3/bin:$PATH
    export PYTHONPATH=/opt/miniconda3/lib/python3.9/:$PYTHONPATH
    export LC_ALL=C.UTF-8

%files
    /volumes/USR1/junke/Projects/copykit/workshop/sample_obj.rds /data/sample_obj.rds
    /volumes/USR1/junke/Projects/copykit/workshop/pmtc6_raw.rds /data/pmtc6_raw.rds
singularity build --fakeroot scdna.sif scdna_addfiles.def
singularity key newpair #run once, generate key pair for signing sifs, enter passphrase
singularity sign scrna2.sif
singularity sign scdna.sif


singularity push scrna2.sif library://rmulqueen/cshl_course/scrna:latest #push
singularity push scdna.sif library://rmulqueen/cshl_course/scdna:latest #push

singularity pull --name cshl_scrna.sif library://rmulqueen/cshl_course/scrna #test pull
singularity pull --name cshl_spatial.sif library://kris69w/cshl_course/spatial:latest #test pull
⚠️ **GitHub.com Fallback** ⚠️