The function returns a list of requirements including the required Python version, package versions, and package name aliases for platform-specific packages. All packages will be installed using uv as the primary tool.
Arguments
- version
The Python version of the environment. Default is
"3.10-1".- include_optional
Whether to include optional Python dependencies.
- modules
Optional requirement modules to include. Supported values are
"scanpy","scvi","scanorama","bbknn","celltypist","cellphonedb","magic","scrublet","doubletdetection","sccoda","doublet","palantir","scvelo","cellrank","wot","phate","pacmap","trimap","multimap", and"scomm". IfNULL, the default environment is returned. The default excludes"sccoda"and"scomm"because their TensorFlow stacks are not compatible with the default JAX/scVI stack in the same environment.
Value
A list containing:
- python
Python version string
- packages
Named vector of package version specifications
- package_aliases
Named list mapping logical package names to actual installed names
Examples
env_requirements("3.10-1")
#> $python
#> [1] "3.10-1"
#>
#> $packages
#> setuptools
#> "setuptools<81"
#> leidenalg
#> "leidenalg==0.10.2"
#> tbb
#> "tbb==2022.2.0"
#> python-igraph
#> "python-igraph==0.11.9"
#> matplotlib
#> "matplotlib==3.10.8"
#> numba
#> "numba==0.59.1"
#> llvmlite
#> "llvmlite==0.42.0"
#> numpy
#> "numpy==1.26.4"
#> packaging
#> "packaging>=24.0"
#> pandas
#> "pandas==2.0.3"
#> scikit-learn
#> "scikit-learn==1.7.0"
#> scipy
#> "scipy==1.15.3"
#> scanpy
#> "scanpy==1.11.3"
#> loompy
#> "loompy"
#> scvi-tools
#> "scvi-tools==1.2.1"
#> jax
#> "jax[cpu]==0.4.38"
#> scglue
#> "scglue==0.4.0"
#> bedtools
#> "bedtools"
#> scanorama
#> "scanorama==1.7.4"
#> bbknn
#> "bbknn==1.6.0"
#> celltypist
#> "celltypist==1.7.1"
#> cellphonedb
#> "cellphonedb==5.0.1"
#> magic-impute
#> "magic-impute==3.0.0"
#> scrublet
#> "scrublet==0.2.3"
#> doubletdetection
#> "doubletdetection==4.3.0.post1"
#> louvain
#> "louvain==0.8.2"
#> palantir
#> "palantir==1.4.1"
#> scvelo
#> "scvelo==0.3.3"
#> cellrank
#> "cellrank==2.0.7"
#> wot
#> "wot==1.0.8.post2"
#> phate
#> "phate==1.0.11"
#> pacmap
#> "pacmap==0.8.0"
#> trimap
#> "trimap==1.1.4"
#> multimap
#> "git+https://github.com/Teichlab/MultiMAP.git"
#>
#> $install_methods
#> setuptools leidenalg tbb python-igraph
#> "pip" "conda" "conda" "conda"
#> matplotlib numba llvmlite numpy
#> "pip" "pip" "pip" "pip"
#> packaging pandas scikit-learn scipy
#> "pip" "pip" "pip" "pip"
#> scanpy loompy scvi-tools jax
#> "pip" "pip" "conda" "pip"
#> scglue bedtools scanorama bbknn
#> "pip" "conda" "pip" "pip"
#> celltypist cellphonedb magic-impute scrublet
#> "pip" "pip" "pip" "pip"
#> doubletdetection louvain palantir scvelo
#> "pip" "pip" "pip" "pip"
#> cellrank wot phate pacmap
#> "pip" "pip" "pip" "pip"
#> trimap multimap
#> "pip" "pip"
#>
#> $package_aliases
#> $package_aliases$`python-igraph`
#> [1] "igraph"
#>
#> $package_aliases$multimap
#> [1] "MultiMAP"
#>
#> $package_aliases$MultiMAP
#> [1] "multimap"
#>
#>