diff --git a/R/basilisk.R b/R/basilisk.R index 9c81a79..765784d 100644 --- a/R/basilisk.R +++ b/R/basilisk.R @@ -1,168 +1,121 @@ ## Windows ---- .scvelo.dependencies.Windows <- list( - channels = c("conda-forge", "bioconda"), + channels = c("conda-forge"), packages = c( - 'anndata==0.9.2', - 'array-api-compat==1.8', 'brotli==1.1.0', 'brotli-bin==1.1.0', - 'brotli-python==1.1.0', 'bzip2==1.0.8', 'ca-certificates==2024.7.4', - 'cached-property==1.5.2', 'cached_property==1.5.2', - 'certifi==2024.7.4', - 'cffi==1.17.0', - 'charset-normalizer==3.3.2', - 'click==8.1.7', - 'colorama==0.4.6', - 'contourpy==1.1.1', - 'cycler==0.12.1', - 'exceptiongroup==1.2.2', - 'fonttools==4.53.1', 'freetype==2.12.1', - 'get-annotations==0.1.2', - 'gettext==0.22.5', - 'gettext-tools==0.22.5', - 'glib==2.80.2', - 'glib-tools==2.80.2', - 'gst-plugins-base==1.21.3', - 'gstreamer==1.21.3', - 'h2==4.1.0', - 'h5py==3.9.0', - 'hdf5==1.14.0', - 'hpack==4.0.0', - 'hyperframe==6.0.1', - 'icu==70.1', - 'idna==3.7', - 'importlib-metadata==8.4.0', - 'importlib-resources==6.4.4', - 'importlib_resources==6.4.4', + 'hdf5==1.14.3', 'intel-openmp==2024.2.1', - 'joblib==1.4.2', - 'jpeg==9e', - 'kiwisolver==1.4.5', - 'krb5==1.20.1', - 'lcms2==2.12', - 'legacy-api-wrap==1.4', + 'krb5==1.21.3', + 'lcms2==2.16', 'lerc==4.0.0', 'libaec==1.1.3', - 'libasprintf==0.22.5', - 'libasprintf-devel==0.22.5', 'libblas==3.9.0', 'libbrotlicommon==1.1.0', 'libbrotlidec==1.1.0', 'libbrotlienc==1.1.0', 'libcblas==3.9.0', - 'libclang==15.0.7', - 'libclang13==15.0.7', - 'libcurl==8.1.2', + 'libcurl==8.9.1', 'libdeflate==1.21', 'libexpat==2.6.2', 'libffi==3.4.2', - 'libgettextpo==0.22.5', - 'libgettextpo-devel==0.22.5', - 'libglib==2.80.2', 'libhwloc==2.11.1', 'libiconv==1.17', - 'libintl==0.22.5', - 'libintl-devel==0.22.5', - 'libjpeg-turbo==2.1.4', + 'libjpeg-turbo==3.0.0', 'liblapack==3.9.0', - 'libogg==1.3.5', 'libpng==1.6.43', 'libsqlite==3.46.0', - 'libssh2==1.10.0', - 'libtiff==4.2.0', - 'libvorbis==1.3.7', + 'libssh2==1.11.0', + 'libtiff==4.6.0', 'libwebp-base==1.4.0', 'libxcb==1.16', 'libxml2==2.12.7', - 'libzlib==1.2.13', - 'llvmlite==0.41.1', - 'loompy==3.0.6', + 'libzlib==1.3.1', 'm2w64-gcc-libgfortran==5.3.0', 'm2w64-gcc-libs==5.3.0', 'm2w64-gcc-libs-core==5.3.0', 'm2w64-gmp==6.1.0', 'm2w64-libwinpthread-git==5.0.0.4634.697f757', - 'matplotlib==3.7.2', - 'matplotlib-base==3.7.2', + 'matplotlib-base==3.9.2', 'mkl==2024.1.0', 'msys2-conda-epoch==20160418', + 'numpy_groupies==0.11.2', + 'openjpeg==2.5.2', + 'openssl==3.3.1', + 'pthread-stubs==0.4', + 'pthreads-win32==2.9.1', + 'python==3.12.5', + 'python-tzdata==2024.1', + 'python_abi==3.12', + 'qhull==2020.2', + 'seaborn-base==0.13.2', + 'tbb==2021.12.0', + 'tk==8.6.13', + 'typing_extensions==4.12.2', + 'ucrt==10.0.22621.0', + 'vc==14.3', + 'vc14_runtime==14.40.33810', + 'vs2015_runtime==14.40.33810', + 'xorg-libxau==1.0.11', + 'xorg-libxdmcp==1.1.3', + 'xz==5.2.6', + 'zstd==1.5.6' + ), + pip = c( + 'anndata==0.10.9', + 'array-api-compat==1.8', + 'cached-property==1.5.2', + 'certifi==2024.7.4', + 'click==8.1.7', + 'colorama==0.4.6', + 'contourpy==1.3.0', + 'cycler==0.12.1', + 'exceptiongroup==1.2.2', + 'fonttools==4.53.1', + 'get-annotations==0.1.2', + 'h5py==3.11.0', + 'joblib==1.4.2', + 'kiwisolver==1.4.5', + 'legacy-api-wrap==1.4', + 'llvmlite==0.43.0', + 'loompy==3.0.6', + 'matplotlib==3.9.2', 'munkres==1.1.4', 'natsort==8.4.0', - 'networkx==3.1', - 'numba==0.58.1', - 'numpy==1.24.4', - 'numpy_groupies==0.9.22', - 'olefile==0.47', - 'openjpeg==2.4.0', - 'openssl==1.1.1w', + 'networkx==3.3', + 'numba==0.60.0', + 'numpy==1.26.4', + 'numpy-groupies==0.11.2', 'packaging==24.1', - 'pandas==2.0.3', + 'pandas==2.2.2', 'patsy==0.5.6', - 'pcre2==10.43', - 'pillow==8.2.0', + 'pillow==10.4.0', 'pip==24.2', - 'platformdirs==4.2.2', - 'ply==3.11', - 'pooch==1.8.2', - 'pthread-stubs==0.4', - 'pthreads-win32==2.9.1', - 'pycparser==2.22', 'pynndescent==0.5.13', - 'pyparsing==3.0.9', - 'pyqt==5.15.7', - 'pyqt5-sip==12.11.0', - 'pysocks==1.7.1', - 'python==3.8.0', + 'pyparsing==3.1.4', 'python-dateutil==2.9.0', - 'python-tzdata==2024.1', - 'python_abi==3.8', 'pytz==2024.1', - 'qhull==2020.2', - 'qt-main==5.15.6', - 'requests==2.32.3', 'scanpy==1.10.2', - 'scikit-learn==1.3.2', - 'scipy==1.10.1', + 'scikit-learn==1.5.1', + 'scipy==1.14.1', 'scvelo==0.2.5', 'seaborn==0.13.2', - 'seaborn-base==0.13.2', 'session-info==1.0.0', 'setuptools==72.2.0', - 'sip==6.7.12', 'six==1.16.0', - 'sqlite==3.46.0', - 'statsmodels==0.14.1', + 'statsmodels==0.14.2', 'stdlib-list==0.10.0', - 'tbb==2021.12.0', 'threadpoolctl==3.5.0', - 'tk==8.6.13', - 'toml==0.10.2', - 'tomli==2.0.1', - 'tornado==6.4.1', 'tqdm==4.66.5', - 'typing_extensions==4.12.2', - 'tzdata==2024a', - 'ucrt==10.0.22621.0', + 'typing-extensions==4.12.2', + 'tzdata==2024.1', 'umap-learn==0.5.6', - 'unicodedata2==15.1.0', - 'urllib3==2.2.2', - 'vc==14.3', - 'vc14_runtime==14.40.33810', - 'vs2015_runtime==14.40.33810', - 'wheel==0.44.0', - 'win_inet_pton==1.1.0', - 'xorg-libxau==1.0.11', - 'xorg-libxdmcp==1.1.3', - 'xz==5.2.6', - 'zipp==3.20.0', - 'zlib==1.2.13', - 'zstandard==0.23.0', - 'zstd==1.5.6' + 'wheel==0.44.0' ) ) @@ -170,6 +123,7 @@ .scvelo.dependencies.MacOSXArm <- list( channels = c("conda-forge", "bioconda"), + pip = character(0), packages = c( 'absl-py==2.1.0', 'anndata==0.10.7', @@ -446,6 +400,7 @@ .scvelo.dependencies.MacOSX <- list( channels = c("conda-forge", "bioconda"), + pip = character(0), packages = c( 'absl-py==2.1.0', 'anndata==0.10.7', @@ -722,6 +677,7 @@ .scvelo.dependencies.Linux <- list( channels = c("anaconda", "conda-forge", "bioconda"), + pip = character(0), packages = c( '_libgcc_mutex==0.1', '_openmp_mutex==4.5', @@ -889,4 +845,4 @@ if (basilisk.utils::isWindows()) { #' @importFrom basilisk BasiliskEnvironment #' @importFrom zellkonverter AnnDataDependencies velo.env <- BasiliskEnvironment("env", "velociraptor", - packages=.scvelo_dependencies$packages, channels = .scvelo_dependencies$channels) + packages=.scvelo_dependencies$packages, channels = .scvelo_dependencies$channels, pip = .scvelo_dependencies$pip) diff --git a/inst/envs/Windows.yaml b/inst/envs/Windows.yaml index 0f5321f..98d6283 100644 --- a/inst/envs/Windows.yaml +++ b/inst/envs/Windows.yaml @@ -3,168 +3,115 @@ channels: - conda-forge - defaults dependencies: + - brotli=1.1.0=hcfcfb64_1 - brotli-bin=1.1.0=hcfcfb64_1 - - brotli-python=1.1.0=py38hd3f51b4_1 - bzip2=1.0.8=h2466b09_7 - ca-certificates=2024.7.4=h56e8100_0 - cached_property=1.5.2=pyha770c72_1 - freetype=2.12.1=hdaf720e_2 - - gettext=0.22.5=h5728263_3 - - gettext-tools=0.22.5=h5a7288d_3 - - glib=2.80.2=h0df6a38_0 - - glib-tools=2.80.2=h2f9d560_0 - - gst-plugins-base=1.21.3=h001b923_1 - - gstreamer=1.21.3=h6b5321d_1 - - hdf5=1.14.0=nompi_h97a5375_103 - - icu=70.1=h0e60522_0 - - importlib_resources=6.4.4=pyhd8ed1ab_0 + - hdf5=1.14.3=nompi_h2b43c12_105 - intel-openmp=2024.2.1=h57928b3_1083 - - jpeg=9e=h8ffe710_2 - - krb5=1.20.1=h6609f42_0 - - lcms2=2.12=h2a16943_0 + - krb5=1.21.3=hdf4eb48_0 + - lcms2=2.16=h67d730c_0 - lerc=4.0.0=h63175ca_0 - libaec=1.1.3=h63175ca_0 - - libasprintf=0.22.5=h5728263_3 - - libasprintf-devel=0.22.5=h5728263_3 - libblas=3.9.0=23_win64_mkl - libbrotlicommon=1.1.0=hcfcfb64_1 - libbrotlidec=1.1.0=hcfcfb64_1 - libbrotlienc=1.1.0=hcfcfb64_1 - libcblas=3.9.0=23_win64_mkl - - libclang=15.0.7=default_h3a3e6c3_5 - - libclang13=15.0.7=default_hf64faad_5 - - libcurl=8.1.2=h68f0423_0 + - libcurl=8.9.1=h18fefc2_0 - libdeflate=1.21=h2466b09_0 - libexpat=2.6.2=h63175ca_0 - libffi=3.4.2=h8ffe710_5 - - libgettextpo=0.22.5=h5728263_3 - - libgettextpo-devel=0.22.5=h5728263_3 - - libglib=2.80.2=h0df6a38_0 - libhwloc=2.11.1=default_h8125262_1000 - libiconv=1.17=hcfcfb64_2 - - libintl=0.22.5=h5728263_3 - - libintl-devel=0.22.5=h5728263_3 - - libjpeg-turbo=2.1.4=hcfcfb64_0 + - libjpeg-turbo=3.0.0=hcfcfb64_1 - liblapack=3.9.0=23_win64_mkl - - libogg=1.3.5=h2466b09_0 - libpng=1.6.43=h19919ed_0 - libsqlite=3.46.0=h2466b09_0 - - libssh2=1.10.0=h680486a_3 - - libtiff=4.2.0=h0c97f57_3 - - libvorbis=1.3.7=h0e60522_0 + - libssh2=1.11.0=h7dfc565_0 + - libtiff=4.6.0=hb151862_4 - libwebp-base=1.4.0=hcfcfb64_0 - - libxcb=1.16=hcd874cb_0 - - libxml2=2.12.7=h283a6d9_1 - - libzlib=1.2.13=h2466b09_6 + - libxcb=1.16=h013a479_1 + - libxml2=2.12.7=h0f24e4e_4 + - libzlib=1.3.1=h2466b09_1 - m2w64-gcc-libgfortran=5.3.0=6 - m2w64-gcc-libs=5.3.0=7 - m2w64-gcc-libs-core=5.3.0=7 - m2w64-gmp=6.1.0=2 - m2w64-libwinpthread-git=5.0.0.4634.697f757=2 - - matplotlib-base=3.7.2=py38h2d9580e_0 + - matplotlib-base=3.9.2=py312h90004f6_0 - mkl=2024.1.0=h66d3029_694 - msys2-conda-epoch=20160418=1 - - numpy_groupies=0.9.22=pyhd8ed1ab_0 - - openjpeg=2.4.0=hb211442_1 - - openssl=1.1.1w=hcfcfb64_0 - - pcre2=10.43=h17e33f8_0 + - numpy_groupies=0.11.2=pyhd8ed1ab_0 + - openjpeg=2.5.2=h3d672ee_0 + - openssl=3.3.1=h2466b09_3 - pthread-stubs=0.4=hcd874cb_1001 - pthreads-win32=2.9.1=hfa6e2cd_3 - - pyqt=5.15.7=py38hd6c051e_3 - - python=3.8.0=hc9e8b01_5 + - python=3.12.5=h889d299_0_cpython - python-tzdata=2024.1=pyhd8ed1ab_0 - - python_abi=3.8=2_cp38 + - python_abi=3.12=5_cp312 - qhull=2020.2=hc790b64_5 - - qt-main=5.15.6=h068e40c_6 - seaborn-base=0.13.2=pyhd8ed1ab_2 - - sqlite=3.46.0=h2466b09_0 - - tbb=2021.12.0=hc790b64_3 + - tbb=2021.12.0=hc790b64_4 - tk=8.6.13=h5226925_1 - typing_extensions=4.12.2=pyha770c72_0 - ucrt=10.0.22621.0=h57928b3_0 - vc=14.3=h8a93ad2_20 - - vc14_runtime=14.40.33810=ha82c5b3_20 + - vc14_runtime=14.40.33810=hcc2c482_20 - vs2015_runtime=14.40.33810=h3bf8584_20 - - win_inet_pton=1.1.0=pyhd8ed1ab_6 - xorg-libxau=1.0.11=hcd874cb_0 - xorg-libxdmcp=1.1.3=hcd874cb_0 - xz=5.2.6=h8d14728_0 - - zlib=1.2.13=h2466b09_6 - zstd=1.5.6=h0ea2cb4_0 - pip: - - anndata==0.9.2 + - anndata==0.10.9 - array-api-compat==1.8 - - brotli==1.1.0 - cached-property==1.5.2 - certifi==2024.7.4 - - cffi==1.17.0 - - charset-normalizer==3.3.2 - click==8.1.7 - colorama==0.4.6 - - contourpy==1.1.1 + - contourpy==1.3.0 - cycler==0.12.1 - exceptiongroup==1.2.2 - fonttools==4.53.1 - get-annotations==0.1.2 - - h2==4.1.0 - - h5py==3.9.0 - - hpack==4.0.0 - - hyperframe==6.0.1 - - idna==3.7 - - importlib-metadata==8.4.0 - - importlib-resources==6.4.4 + - h5py==3.11.0 - joblib==1.4.2 - kiwisolver==1.4.5 - legacy-api-wrap==1.4 - - llvmlite==0.41.1 + - llvmlite==0.43.0 - loompy==3.0.6 - - matplotlib==3.7.2 + - matplotlib==3.9.2 - munkres==1.1.4 - natsort==8.4.0 - - networkx==3.1 - - numba==0.58.1 - - numpy==1.24.4 - - numpy-groupies==0.9.22 - - olefile==0.47 + - networkx==3.3 + - numba==0.60.0 + - numpy==1.26.4 + - numpy-groupies==0.11.2 - packaging==24.1 - - pandas==2.0.3 + - pandas==2.2.2 - patsy==0.5.6 - - pillow==8.2.0 + - pillow==10.4.0 - pip==24.2 - - platformdirs==4.2.2 - - ply==3.11 - - pooch==1.8.2 - - pycparser==2.22 - pynndescent==0.5.13 - - pyparsing==3.0.9 - - pyqt5==5.15.7 - - pyqt5-sip==12.11.0 - - pysocks==1.7.1 + - pyparsing==3.1.4 - python-dateutil==2.9.0 - pytz==2024.1 - - requests==2.32.3 - scanpy==1.10.2 - - scikit-learn==1.3.2 - - scipy==1.10.1 + - scikit-learn==1.5.1 + - scipy==1.14.1 - scvelo==0.2.5 - seaborn==0.13.2 - session-info==1.0.0 - setuptools==72.2.0 - - sip==6.7.12 - six==1.16.0 - - statsmodels==0.14.1 + - statsmodels==0.14.2 - stdlib-list==0.10.0 - threadpoolctl==3.5.0 - - toml==0.10.2 - - tomli==2.0.1 - - tornado==6.4.1 - tqdm==4.66.5 - typing-extensions==4.12.2 - tzdata==2024.1 - umap-learn==0.5.6 - - unicodedata2==15.1.0 - - urllib3==2.2.2 - wheel==0.44.0 - - win-inet-pton==1.1.0 - - zipp==3.20.0 - - zstandard==0.23.0 \ No newline at end of file diff --git a/inst/envs/format_yaml_to_r.R b/inst/envs/format_yaml_to_r.R index d147eb2..7eb0776 100644 --- a/inst/envs/format_yaml_to_r.R +++ b/inst/envs/format_yaml_to_r.R @@ -1,11 +1,32 @@ library(yaml) -yaml_data <- yaml::read_yaml("Linux_x86_64_anaconda.yaml") -r_data <- gsub("([[:alnum:]_]+)=([[:alnum:].]+)=.+", "\\1==\\2" , yaml_data$dependencies) +yaml_data <- yaml::read_yaml("Windows.yaml") + +which_pip_dependencies <- which(sapply(yaml_data$dependencies, function(x) any(names(x) %in% "pip"))) + +conda_dependencies <- yaml_data$dependencies[-c(which_pip_dependencies)] + +conda_dependencies <- gsub("([[:alnum:]_]+)=([[:alnum:].]+)=.+", "\\1==\\2" , conda_dependencies) + + +message("Conda dependencies:") cat(paste0( "c(", "\n", - paste0(" ", "'", r_data, "'", collapse = ",\n"), + paste0(" ", "'", conda_dependencies, "'", collapse = ",\n"), "\n", ")", "\n" )) + +message("pip dependencies:") +if (length(which_pip_dependencies)) { + pip_dependencies <- yaml_data$dependencies[[which_pip_dependencies]]$pip + cat(paste0( + "c(", + "\n", + paste0(" ", "'", pip_dependencies, "'", collapse = ",\n"), + "\n", + ")", + "\n" + )) +}