---
# System prepended metadata

title: quiche on Bianca
tags: [Bianca, UPPMAX]

---

# quiche on Bianca
https://github.com/jranek/quiche

The installation is "wrapped" in a Singularity container.
Download the container on your computer and transfer it to Bianca via wharf. Link sent separately.

Standard way of using the tools python modules.

```bash
# Start an interactive job, modify according to needs
interactive -A naiss-XXXX -n 8

# Start shell in the container. You need to point to the quiche container.
apptainer shell path_to/quiche

# Start jupyter on the compute node
jupyter-notebook --ip 0.0.0.0 --no-browser
```
```bash
# or start python
python3
Python 3.9.23 | packaged by conda-forge | (main, Jun 4 2025, 17:57:12)
[GCC 13.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> import anndata
>>> import quiche as qu
```
Start browser on the login node and open the jupyter session https://docs.uppmax.uu.se/software/jupyter_on_bianca/
![image](https://hackmd.io/_uploads/SJw3TWQtZe.png)

One needs to download the necessary files (*like the example above `spain_preprocessed.h5ad`* https://zenodo.org/records/14290163 ) separately and bring them on Bianca as well.

R with the required libraries is also available in the container
```bash
Apptainer> R

R version 4.3.3 (2024-02-29) -- "Angel Food Cake"
Copyright (C) 2024 The R Foundation for Statistical Computing
Platform: x86_64-conda-linux-gnu (64-bit)

R is free software and comes with ABSOLUTELY NO WARRANTY.
You are welcome to redistribute it under certain conditions.
Type 'license()' or 'licence()' for distribution details.

R is a collaborative project with many contributors.
Type 'contributors()' for more information and
'citation()' on how to cite R or R packages in publications.

Type 'demo()' for some demos, 'help()' for on-line help, or
'help.start()' for an HTML browser interface to help.
Type 'q()' to quit R.

> library(statmod)
> library(edgeR)
Loading required package: limma
>
```

:::info
The documentation does not mention GPU, but if necessary and it has the necessary packages, enter the container shell by `apptainer shell --nv quiche`. Make sure you also allocate GPU compute node.
:::

## Container definition
:::spoiler quiche.def
```singularity
BootStrap: docker
From: mambaorg/micromamba:1.5.10-noble

%environment
  export PYTHONNOUSERSITE=True
  export R_PROFILE_USER="/.Rprofile"
  export R_ENVIRON_USER="/.Renviron"
  export PATH="$MAMBA_ROOT_PREFIX/bin:$PATH"

%post
  export PYTHONNOUSERSITE=True
  export R_PROFILE_USER="/.Rprofile"
  export R_ENVIRON_USER="/.Renviron"
  export DEBIAN_FRONTEND=noninteractive
  export CONDA_PKGS_DIRS=/tmp/conda_pkgs && mkdir -p ${CONDA_PKGS_DIRS}
  export PIP_CACHE_DIR=/tmp/pip-cache && mkdir -p ${PIP_CACHE_DIR}

mkdir -p /install
cat << EOF > /install/conda.yml
name: venv_quiche
channels:
    - bioconda
    - conda-forge
    - defaults
dependencies:
    - anndata>=0.7.6,<0.10.9
    - umap-learn==0.5.1
    - scikit-learn>=0.23.2
    - scikit-image>=0.19.2
    - python>=3.7
    - ipython
    - ipykernel
    - jupyter
    - networkx==2.7
    - statsmodels>=0.12.2
    - scanpy>=1.8.1
    - python-igraph>=0.9.6
    - seaborn>=0.12.2
    - numba>=0.53.0
    - tqdm
    - git
    - pip
    - r==4.3
    - r-matrix
    - r-locfit
    - r-statmod
    - rpy2==3.5.11
    - scipy==1.12.0
    - shapely
    - numpy=<2
    - pip:
        - sketchKH==0.1.2
        - squidpy>=1.6.1
        - pertpy
        - flax==0.7.4
        - jax==0.4.17
        - jaxlib==0.4.17
        - chex==0.1.8
EOF

  micromamba install -y -n base -f /install/conda.yml
  micromamba install -y -n base conda-forge::procps-ng
  micromamba env export --name base --explicit > /install/environment.lock
  #micromamba clean -a -y

  export PATH="$MAMBA_ROOT_PREFIX/bin:$PATH"
  mkdir -p /installs && cd /installs
  git clone https://github.com/jranek/quiche.git
  cd quiche
  python3 -m pip install .
  
Rscript - << EOF
options(repos = c(CRAN = "https://cran.r-project.org"))
if (!require("BiocManager", quietly = TRUE))
    install.packages("BiocManager")

#statmod v1.5.0
install.packages('statmod')

#edger v3.40.2
BiocManager::install("edgeR")
EOF

%runscript
#!/bin/sh
  if command -v $SINGULARITY_NAME > /dev/null 2> /dev/null; then
    exec $SINGULARITY_NAME "$@"
  else
    echo "# ERROR !!! Command  not found in the container"
  fi
```
:::

## Contacts:
- [Pavlin Mitev](https://katalog.uu.se/profile/?id=N3-1425)
- [UPPMAX](https://www.uu.se/en/centre/uppmax)
- [AE@UPPMAX - related documentation](/8sqXISVRRquPDSw9o1DizQ)

###### tags: `UPPMAX`,`Bianca`