DendrouLab / panpipes

Multi-modal single cell analysis pipelines
BSD 3-Clause "New" or "Revised" License
54 stars 9 forks source link

MultiVI issue with PyTorch #306

Open wlason opened 3 months ago

wlason commented 3 months ago

The multiVi fails at the mvi.train in batch_correct_multivi.py.

Traceback (most recent call last):
  File "[path]/panpipes/panpipes/python_scripts/batch_correct_multivi.py", line 256, in <module>
    mvi.train( **multivi_training_args, **multivi_training_plan)
  File "[path]/panpipes_gpu/lib/python3.10/site-packages/scvi/model/_multivi.py", line 351, in train
    return runner()
  File "[path]/panpipes_gpu/lib/python3.10/site-packages/scvi/train/_trainrunner.py", line 98, in __call__
    self.trainer.fit(self.training_plan, self.data_splitter)
  File "[path]/panpipes_gpu/lib/python3.10/site-packages/scvi/train/_trainer.py", line 219, in fit
    super().fit(*args, **kwargs)
  File "[path]/panpipes_gpu/lib/python3.10/site-packages/lightning/pytorch/trainer/trainer.py", line 544, in fit
    call._call_and_handle_interrupt(
  File "[path]/panpipes_gpu/lib/python3.10/site-packages/lightning/pytorch/trainer/call.py", line 44, in _call_and_handle_interrupt
    return trainer_fn(*args, **kwargs)
  File "[path]/panpipes_gpu/lib/python3.10/site-packages/lightning/pytorch/trainer/trainer.py", line 580, in _fit_impl
    self._run(model, ckpt_path=ckpt_path)
  File "[path]/panpipes_gpu/lib/python3.10/site-packages/lightning/pytorch/trainer/trainer.py", line 989, in _run
    results = self._run_stage()
  File "[path]/panpipes_gpu/lib/python3.10/site-packages/lightning/pytorch/trainer/trainer.py", line 1035, in _run_stage
    self.fit_loop.run()
  File "[path]/panpipes_gpu/lib/python3.10/site-packages/lightning/pytorch/loops/fit_loop.py", line 202, in run
    self.advance()
  File "[path]/panpipes_gpu/lib/python3.10/site-packages/lightning/pytorch/loops/fit_loop.py", line 359, in advance
    self.epoch_loop.run(self._data_fetcher)
  File "[path]/panpipes_gpu/lib/python3.10/site-packages/lightning/pytorch/loops/training_epoch_loop.py", line 136, in run
    self.advance(data_fetcher)
  File "[path]/panpipes_gpu/lib/python3.10/site-packages/lightning/pytorch/loops/training_epoch_loop.py", line 242, in advance
    batch_output = self.manual_optimization.run(kwargs)
  File "[path]/panpipes_gpu/lib/python3.10/site-packages/lightning/pytorch/loops/optimization/manual.py", line 92, in run
    self.advance(kwargs)
  File "[path]/panpipes_gpu/lib/python3.10/site-packages/lightning/pytorch/loops/optimization/manual.py", line 112, in advance
    training_step_output = call._call_strategy_hook(trainer, "training_step", *kwargs.values())
  File "[path]/panpipes_gpu/lib/python3.10/site-packages/lightning/pytorch/trainer/call.py", line 309, in _call_strategy_hook
    output = fn(*args, **kwargs)
  File "[path]/panpipes_gpu/lib/python3.10/site-packages/lightning/pytorch/strategies/strategy.py", line 382, in training_step
    return self.lightning_module.training_step(*args, **kwargs)
  File "[path]/panpipes_gpu/lib/python3.10/site-packages/scvi/train/_trainingplans.py", line 567, in training_step
    inference_outputs, _, scvi_loss = self.forward(batch, loss_kwargs=self.loss_kwargs)
  File "[path]/panpipes_gpu/lib/python3.10/site-packages/scvi/train/_trainingplans.py", line 278, in forward
    return self.module(*args, **kwargs)
  File "[path]/panpipes_gpu/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "[path]/panpipes_gpu/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl
    return forward_call(*args, **kwargs)
  File "[path]/panpipes_gpu/lib/python3.10/site-packages/scvi/module/base/_decorators.py", line 32, in auto_transfer_args
    return fn(self, *args, **kwargs)
  File "[path]/panpipes_gpu/lib/python3.10/site-packages/scvi/module/base/_base_module.py", line 203, in forward
    return _generic_forward(
  File "[path]/panpipes_gpu/lib/python3.10/site-packages/scvi/module/base/_base_module.py", line 739, in _generic_forward
    inference_outputs = module.inference(**inference_inputs, **inference_kwargs)
  File "[path]/panpipes_gpu/lib/python3.10/site-packages/scvi/module/base/_decorators.py", line 32, in auto_transfer_args
    return fn(self, *args, **kwargs)
  File "[path]/panpipes_gpu/lib/python3.10/site-packages/scvi/module/_multivae.py", line 600, in inference
    qzm_acc, qzv_acc, z_acc = self.z_encoder_accessibility(
  File "[path]/panpipes_gpu/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1518, in _wrapped_call_impl
    return self._call_impl(*args, **kwargs)
  File "[path]/panpipes_gpu/lib/python3.10/site-packages/torch/nn/modules/module.py", line 1527, in _call_impl
    return forward_call(*args, **kwargs)
  File "[path]/panpipes_gpu/lib/python3.10/site-packages/scvi/nn/_base_components.py", line 282, in forward
    dist = Normal(q_m, q_v.sqrt())
  File "[path]/panpipes_gpu/lib/python3.10/site-packages/torch/distributions/normal.py", line 56, in __init__
    super().__init__(batch_shape, validate_args=validate_args)
  File "[path]/panpipes_gpu/lib/python3.10/site-packages/torch/distributions/distribution.py", line 68, in __init__
    raise ValueError(
ValueError: Expected parameter loc (Tensor of shape (128, 12)) of distribution Normal(loc: torch.Size([128, 12]), scale: torch.Size([128, 12])) to satisfy the constraint Real(), but found invalid values:
tensor([[nan, nan, nan,  ..., nan, nan, nan],
        [nan, nan, nan,  ..., nan, nan, nan],
        [nan, nan, nan,  ..., nan, nan, nan],
        ...,
        [nan, nan, nan,  ..., nan, nan, nan],
        [nan, nan, nan,  ..., nan, nan, nan],
        [nan, nan, nan,  ..., nan, nan, nan]], device='cuda:0',
       grad_fn=<AddmmBackward0>)

Similar to this issue in scArches: https://github.com/theislab/scarches/issues/206

bio-la commented 3 months ago

Hi Wojiciech, thanks for reporting this issue. I thought the tensor issue was solved in the latest scvi version (see this PR) and https://github.com/scverse/scvi-tools/issues/2581 but it seems a slightly different version of the same error. can you post the packages versions? thanks!

wlason commented 3 months ago

Hi Faby! I think you're right, I have scvi 1.1.2. I will try to update and rerun, and report back if the issue has been solved!

Here is the complete environment:

dependencies:
  - _libgcc_mutex=0.1=conda_forge
  - _openmp_mutex=4.5=2_gnu
  - _r-mutex=1.0.1=anacondar_1
  - binutils_impl_linux-64=2.40=hf600244_0
  - bwidget=1.9.14=ha770c72_1
  - bzip2=1.0.8=hd590300_5
  - c-ares=1.27.0=hd590300_0
  - ca-certificates=2024.7.4=hbcca054_0
  - cairo=1.16.0=hbbf8b49_1016
  - cuda-version=11.8=h70ddcb2_3
  - cudatoolkit=11.8.0=h4ba93d1_13
  - cupy=13.2.0=py310h189a05f_1
  - cupy-core=13.2.0=py310h71e26cc_1
  - curl=8.5.0=hdbd6064_0
  - expat=2.5.0=hcb278e6_1
  - fastrlock=0.8.2=py310hc6cd4ac_2
  - font-ttf-dejavu-sans-mono=2.37=hab24e00_0
  - font-ttf-inconsolata=3.000=h77eed37_0
  - font-ttf-source-code-pro=2.038=h77eed37_0
  - font-ttf-ubuntu=0.83=h77eed37_1
  - fontconfig=2.14.2=h14ed4e7_0
  - fonts-conda-ecosystem=1=0
  - fonts-conda-forge=1=0
  - freetype=2.12.1=h267a509_2
  - fribidi=1.0.10=h36c2ea0_0
  - gcc_impl_linux-64=13.2.0=h338b0a0_5
  - gettext=0.21.1=h27087fc_0
  - gfortran_impl_linux-64=13.2.0=h76e1118_5
  - glpk=5.0=h445213a_0
  - gmp=6.3.0=h59595ed_0
  - graphite2=1.3.13=h58526e2_1001
  - gsl=2.7=he838d99_0
  - gxx_impl_linux-64=13.2.0=h338b0a0_5
  - harfbuzz=7.3.0=hdb3a94d_0
  - hdf5=1.14.3=nompi_h4f84152_100
  - icu=72.1=hcb278e6_0
  - kernel-headers_linux-64=2.6.32=he073ed8_17
  - keyutils=1.6.1=h166bdaf_0
  - krb5=1.20.1=h81ceb04_0
  - ld_impl_linux-64=2.40=h41732ed_0
  - lerc=4.0.0=h27087fc_0
  - libaec=1.1.2=h59595ed_1
  - libblas=3.9.0=21_linux64_openblas
  - libcblas=3.9.0=21_linux64_openblas
  - libcurl=8.5.0=h251f7ec_0
  - libdeflate=1.18=h0b41bf4_0
  - libedit=3.1.20191231=he28a2e2_2
  - libev=4.33=hd590300_2
  - libexpat=2.5.0=hcb278e6_1
  - libffi=3.4.2=h7f98852_5
  - libgcc-devel_linux-64=13.2.0=ha9c7c90_105
  - libgcc-ng=13.2.0=h807b86a_5
  - libgfortran-ng=13.2.0=h69a702a_5
  - libgfortran5=13.2.0=ha4646dd_5
  - libglib=2.78.1=hebfc3b9_0
  - libgomp=13.2.0=h807b86a_5
  - libiconv=1.17=hd590300_2
  - libjpeg-turbo=2.1.5.1=hd590300_1
  - liblapack=3.9.0=21_linux64_openblas
  - libnghttp2=1.58.0=h47da74e_1
  - libnsl=2.0.1=hd590300_0
  - libopenblas=0.3.26=pthreads_h413a1c8_0
  - libpng=1.6.43=h2797004_0
  - libsanitizer=13.2.0=h7e041cc_5
  - libsqlite=3.45.1=h2797004_0
  - libssh2=1.11.0=h0841786_0
  - libstdcxx-devel_linux-64=13.2.0=ha9c7c90_105
  - libstdcxx-ng=13.2.0=h7e041cc_5
  - libtiff=4.5.1=h8b53f26_1
  - libuuid=2.38.1=h0b41bf4_0
  - libwebp-base=1.3.2=hd590300_0
  - libxcb=1.15=h0b41bf4_0
  - libxcrypt=4.4.36=hd590300_1
  - libxml2=2.11.5=h0d562d8_0
  - libzlib=1.2.13=hd590300_5
  - make=4.3=hd18ef5c_1
  - ncurses=6.4=h59595ed_2
  - numpy=1.26.4=py310hb13e2d6_0
  - openssl=3.3.1=h4bc722e_2
  - pandoc=3.1.12.2=ha770c72_0
  - pango=1.50.14=heaa33ce_1
  - pcre2=10.40=hc3806b6_0
  - pip=24.0=pyhd8ed1ab_0
  - pixman=0.43.2=h59595ed_0
  - pthread-stubs=0.4=h36c2ea0_1001
  - python=3.10.13=hd12c33a_1_cpython
  - python-annoy=1.17.2=py310hc6cd4ac_1
  - python_abi=3.10=4_cp310
  - r-askpass=1.2.0=r43h57805ef_0
  - r-assertthat=0.2.1=r43hc72bb7e_4
  - r-backports=1.4.1=r43h57805ef_2
  - r-base=4.3.0=hfabd6f2_3
  - r-base64enc=0.1_3=r43h57805ef_1006
  - r-bit=4.0.5=r43h57805ef_1
  - r-bit64=4.0.5=r43h57805ef_2
  - r-blob=1.2.4=r43hc72bb7e_1
  - r-broom=1.0.5=r43hc72bb7e_1
  - r-bslib=0.6.1=r43hc72bb7e_0
  - r-cachem=1.0.8=r43h57805ef_1
  - r-callr=3.7.5=r43hc72bb7e_0
  - r-cellranger=1.1.0=r43hc72bb7e_1006
  - r-checkmate=2.3.0=r43h57805ef_0
  - r-cli=3.6.2=r43ha503ecb_0
  - r-clipr=0.8.0=r43hc72bb7e_2
  - r-clustree=0.5.1=r43hc72bb7e_0
  - r-colorspace=2.1_0=r43h57805ef_1
  - r-conflicted=1.2.0=r43h785f33e_1
  - r-cowplot=1.1.3=r43hc72bb7e_0
  - r-cpp11=0.4.7=r43hc72bb7e_0
  - r-crayon=1.5.2=r43hc72bb7e_2
  - r-curl=5.1.0=r43hf9611b0_0
  - r-data.table=1.15.2=r43h029312a_0
  - r-dbi=1.2.2=r43hc72bb7e_0
  - r-dbplyr=2.4.0=r43hc72bb7e_0
  - r-digest=0.6.34=r43ha503ecb_0
  - r-dplyr=1.1.4=r43ha503ecb_0
  - r-dtplyr=1.3.1=r43hc72bb7e_1
  - r-ellipsis=0.3.2=r43h57805ef_2
  - r-evaluate=0.23=r43hc72bb7e_0
  - r-fansi=1.0.6=r43h57805ef_0
  - r-farver=2.1.1=r43ha503ecb_2
  - r-fastmap=1.1.1=r43ha503ecb_1
  - r-fontawesome=0.5.2=r43hc72bb7e_0
  - r-forcats=1.0.0=r43hc72bb7e_1
  - r-fs=1.6.3=r43ha503ecb_0
  - r-gargle=1.5.2=r43h785f33e_0
  - r-generics=0.1.3=r43hc72bb7e_2
  - r-getopt=1.20.4=r43ha770c72_0
  - r-ggforce=0.4.2=r43ha503ecb_0
  - r-ggplot2=3.5.0=r43hc72bb7e_0
  - r-ggraph=2.1.0=r43ha503ecb_2
  - r-ggrepel=0.9.5=r43ha503ecb_0
  - r-glue=1.7.0=r43h57805ef_0
  - r-googledrive=2.1.1=r43hc72bb7e_1
  - r-googlesheets4=1.1.1=r43h785f33e_1
  - r-graphlayouts=1.1.0=r43ha503ecb_0
  - r-gridextra=2.3=r43hc72bb7e_1005
  - r-gtable=0.3.4=r43hc72bb7e_0
  - r-haven=2.5.4=r43ha503ecb_0
  - r-hdf5r=1.3.10=r43h0e8ca13_0
  - r-highr=0.10=r43hc72bb7e_1
  - r-hms=1.1.3=r43hc72bb7e_1
  - r-htmltools=0.5.7=r43ha503ecb_0
  - r-httr=1.4.7=r43hc72bb7e_0
  - r-ids=1.0.1=r43hc72bb7e_3
  - r-igraph=1.5.1=r43hbd8eb98_0
  - r-isoband=0.2.7=r43ha503ecb_2
  - r-jquerylib=0.1.4=r43hc72bb7e_2
  - r-jsonlite=1.8.8=r43h57805ef_0
  - r-knitr=1.45=r43hc72bb7e_1
  - r-labeling=0.4.3=r43hc72bb7e_0
  - r-lattice=0.22_5=r43h57805ef_0
  - r-lifecycle=1.0.4=r43hc72bb7e_0
  - r-lubridate=1.9.3=r43h57805ef_0
  - r-magrittr=2.0.3=r43h57805ef_2
  - r-mass=7.3_60=r43h57805ef_1
  - r-matrix=1.6_5=r43h316c678_0
  - r-memoise=2.0.1=r43hc72bb7e_2
  - r-mgcv=1.9_1=r43h316c678_0
  - r-mime=0.12=r43h57805ef_2
  - r-modelr=0.1.11=r43hc72bb7e_1
  - r-munsell=0.5.0=r43hc72bb7e_1006
  - r-nlme=3.1_164=r43h61816a4_0
  - r-openssl=2.1.1=r43hb353fa6_0
  - r-optparse=1.7.4=r43hc72bb7e_0
  - r-pillar=1.9.0=r43hc72bb7e_1
  - r-pkgconfig=2.0.3=r43hc72bb7e_3
  - r-polyclip=1.10_6=r43ha503ecb_0
  - r-prettyunits=1.2.0=r43hc72bb7e_0
  - r-processx=3.8.3=r43h57805ef_0
  - r-progress=1.2.3=r43hc72bb7e_0
  - r-ps=1.7.6=r43h57805ef_0
  - r-purrr=1.0.2=r43h57805ef_0
  - r-r6=2.5.1=r43hc72bb7e_2
  - r-ragg=1.2.5=r43h85cdef0_2
  - r-rappdirs=0.3.3=r43h57805ef_2
  - r-rcolorbrewer=1.1_3=r43h785f33e_2
  - r-rcpp=1.0.12=r43h7df8631_0
  - r-rcpparmadillo=0.12.8.1.0=r43h08d816e_0
  - r-rcppeigen=0.3.4.0.0=r43h08d816e_0
  - r-readr=2.1.5=r43ha503ecb_0
  - r-readxl=1.4.3=r43ha5c9fba_0
  - r-rematch=2.0.0=r43hc72bb7e_0
  - r-rematch2=2.1.2=r43hc72bb7e_3
  - r-reprex=2.1.0=r43hc72bb7e_0
  - r-rlang=1.1.3=r43ha503ecb_0
  - r-rmarkdown=2.25=r43hc72bb7e_0
  - r-rstudioapi=0.15.0=r43hc72bb7e_0
  - r-rvest=1.0.4=r43hc72bb7e_0
  - r-sass=0.4.8=r43ha503ecb_0
  - r-scales=1.3.0=r43hc72bb7e_0
  - r-selectr=0.4_2=r43hc72bb7e_3
  - r-stringi=1.7.12=r43hc0c3e09_2
  - r-stringr=1.5.1=r43h785f33e_0
  - r-sys=3.4.2=r43h57805ef_1
  - r-systemfonts=1.0.5=r43haf97adc_0
  - r-textshaping=0.3.6=r43h24cd192_6
  - r-tibble=3.2.1=r43h57805ef_2
  - r-tidygraph=1.3.0=r43ha503ecb_0
  - r-tidyr=1.3.1=r43ha503ecb_0
  - r-tidyselect=1.2.0=r43hc72bb7e_1
  - r-tidyverse=2.0.0=r43h785f33e_1
  - r-timechange=0.3.0=r43ha503ecb_0
  - r-tinytex=0.49=r43hc72bb7e_1
  - r-tweenr=2.0.3=r43ha503ecb_0
  - r-tzdb=0.4.0=r43ha503ecb_1
  - r-utf8=1.2.4=r43h57805ef_0
  - r-uuid=1.2_0=r43h57805ef_0
  - r-vctrs=0.6.5=r43ha503ecb_0
  - r-viridis=0.6.5=r43hc72bb7e_0
  - r-viridislite=0.4.2=r43hc72bb7e_1
  - r-vroom=1.6.5=r43ha503ecb_0
  - r-withr=3.0.0=r43hc72bb7e_0
  - r-xfun=0.42=r43ha503ecb_0
  - r-xml2=1.3.5=r43h1ad5fc0_0
  - r-xtable=1.8_4=r43hc72bb7e_5
  - r-yaml=2.3.8=r43h57805ef_0
  - readline=8.2=h8228510_1
  - sed=4.8=he412f7d_0
  - setuptools=69.1.1=pyhd8ed1ab_0
  - sysroot_linux-64=2.12=he073ed8_17
  - tk=8.6.13=noxft_h4845f30_101
  - tktable=2.10=h0c5db8f_5
  - wheel=0.42.0=pyhd8ed1ab_0
  - xorg-kbproto=1.0.7=h7f98852_1002
  - xorg-libice=1.1.1=hd590300_0
  - xorg-libsm=1.2.4=h7391055_0
  - xorg-libx11=1.8.7=h8ee46fc_0
  - xorg-libxau=1.0.11=hd590300_0
  - xorg-libxdmcp=1.1.3=h7f98852_0
  - xorg-libxext=1.3.4=h0b41bf4_2
  - xorg-libxrender=0.9.11=hd590300_0
  - xorg-libxt=1.3.0=hd590300_1
  - xorg-renderproto=0.11.1=h7f98852_1002
  - xorg-xextproto=7.3.0=h0b41bf4_1003
  - xorg-xproto=7.0.31=h7f98852_1007
  - xz=5.2.6=h166bdaf_0
  - zlib=1.2.13=hd590300_5
  - zstd=1.5.5=hfc55251_0
  - pip:
      - absl-py==2.1.0
      - adjusttext==1.0.4
      - aiohttp==3.9.3
      - aiosignal==1.3.1
      - airr==1.5.0
      - anndata==0.8.0
      - annotated-types==0.6.0
      - anyio==4.3.0
      - appdirs==1.4.4
      - apsw==3.45.1.0
      - argon2-cffi==23.1.0
      - argon2-cffi-bindings==21.2.0
      - array-api-compat==1.4.1
      - arrow==1.3.0
      - asciitree==0.3.3
      - asttokens==2.4.1
      - async-lru==2.0.4
      - async-timeout==4.0.3
      - attrs==23.2.0
      - babel==2.14.0
      - bbknn==1.6.0
      - bcrypt==4.1.2
      - beautifulsoup4==4.12.3
      - biopython==1.83
      - biothings-client==0.3.1
      - bleach==6.1.0
      - boto3==1.34.55
      - botocore==1.34.55
      - cell2location==0.1.3
      - certifi==2022.12.7
      - cffi==1.16.0
      - cgatcore==0.6.15
      - charset-normalizer==2.1.1
      - chex==0.1.85
      - click==8.1.7
      - click-plugins==1.1.1
      - cligj==0.7.2
      - cloudpickle==3.0.0
      - colorama==0.4.6
      - colorcet==3.1.0
      - comm==0.2.1
      - contextlib2==21.6.0
      - contourpy==1.2.0
      - cryptography==42.0.5
      - cycler==0.12.1
      - cython==3.0.8
      - dask==2024.2.1
      - dask-image==2023.8.1
      - datashader==0.16.0
      - debugpy==1.8.1
      - decorator==5.1.1
      - defusedxml==0.7.1
      - deprecated==1.2.14
      - diskcache==5.6.3
      - distributed==2024.2.1
      - docrep==0.3.2
      - drmaa==0.7.9
      - et-xmlfile==1.1.0
      - etils==1.7.0
      - exceptiongroup==1.2.0
      - executing==2.0.1
      - fasteners==0.19
      - fastjsonschema==2.19.1
      - fbpca==1.0
      - filelock==3.9.0
      - fiona==1.9.5
      - flax==0.8.1
      - fonttools==4.49.0
      - fqdn==1.5.1
      - frozenlist==1.4.1
      - fsspec==2023.4.0
      - future==1.0.0
      - gdown==5.1.0
      - genomepy==0.16.1
      - geopandas==0.14.3
      - geosketch==1.2
      - gevent==24.2.1
      - greenlet==3.0.3
      - grpcio==1.62.0
      - h11==0.14.0
      - h5py==3.10.0
      - harmonypy==0.0.9
      - httpcore==1.0.4
      - httpx==0.27.0
      - huggingface-hub==0.17.3
      - hyperopt==0.2.7
      - idna==3.4
      - igraph==0.10.8
      - imageio==2.34.0
      - importlib-metadata==7.0.1
      - importlib-resources==6.1.2
      - inflect==7.0.0
      - intervaltree==3.1.0
      - ipykernel==6.29.3
      - ipython==8.22.2
      - ipywidgets==8.1.2
      - isoduration==20.11.0
      - jax==0.4.25
      - jaxlib==0.4.25+cuda11.cudnn86
      - jedi==0.19.1
      - jinja2==3.1.2
      - jmespath==1.0.1
      - joblib==1.3.2
      - json5==0.9.20
      - jsonpointer==2.4
      - jsonschema==4.21.1
      - jsonschema-specifications==2023.12.1
      - jupyter==1.0.0
      - jupyter-client==8.6.0
      - jupyter-console==6.6.3
      - jupyter-core==5.7.1
      - jupyter-events==0.9.0
      - jupyter-lsp==2.2.4
      - jupyter-server==2.13.0
      - jupyter-server-terminals==0.5.2
      - jupyterlab==4.1.3
      - jupyterlab-pygments==0.3.0
      - jupyterlab-server==2.24.0
      - jupyterlab-widgets==3.0.10
      - kiwisolver==1.4.5
      - lazy-loader==0.3
      - leidenalg==0.10.2
      - levenshtein==0.25.0
      - lightning==2.1.4
      - lightning-utilities==0.10.1
      - llvmlite==0.42.0
      - locket==1.0.0
      - loguru==0.7.2
      - loompy==3.0.7
      - louvain==0.8.1
      - markdown==3.5.2
      - markdown-it-py==3.0.0
      - markupsafe==2.1.3
      - matplotlib==3.8.3
      - matplotlib-inline==0.1.6
      - matplotlib-scalebar==0.8.1
      - mdurl==0.1.2
      - mistune==3.0.2
      - mizani==0.11.0
      - ml-collections==0.1.1
      - ml-dtypes==0.3.2
      - mofapy2==0.7.0
      - mpmath==1.3.0
      - msgpack==1.0.8
      - mudata==0.2.3
      - multidict==6.0.5
      - multipledispatch==1.0.0
      - multiscale-spatial-image==0.11.2
      - muon==0.1.5
      - mygene==3.2.2
      - mysql-connector-python==8.3.0
      - natsort==8.4.0
      - nbclient==0.9.0
      - nbconvert==7.16.2
      - nbformat==5.9.2
      - nest-asyncio==1.6.0
      - networkx==3.2.1
      - norns==0.1.6
      - nose==1.3.7
      - notebook==7.1.1
      - notebook-shim==0.2.4
      - numba==0.59.0
      - numcodecs==0.12.1
      - numpy-groupies==0.10.2
      - numpyro==0.14.0
      - nvidia-cublas-cu11==11.11.3.6
      - nvidia-cuda-cupti-cu11==11.8.87
      - nvidia-cuda-nvcc-cu11==11.8.89
      - nvidia-cuda-nvrtc-cu11==11.8.89
      - nvidia-cuda-runtime-cu11==11.8.89
      - nvidia-cudnn-cu11==8.9.6.50
      - nvidia-cufft-cu11==10.9.0.58
      - nvidia-cusolver-cu11==11.4.1.48
      - nvidia-cusparse-cu11==11.7.5.86
      - nvidia-nccl-cu11==2.19.3
      - ome-zarr==0.8.3
      - omnipath==1.0.8
      - opencv-python==4.9.0.80
      - openpyxl==3.1.2
      - opt-einsum==3.3.0
      - optax==0.1.9
      - orbax-checkpoint==0.5.3
      - overrides==7.7.0
      - packaging==23.2
      - pandas==1.5.3
      - pandocfilters==1.5.1
      - panpipes==0.4.1
      - param==2.0.2
      - paramiko==3.4.0
      - parasail==1.3.4
      - parso==0.8.3
      - partd==1.4.1
      - patsy==0.5.6
      - pexpect==4.9.0
      - pillow==10.2.0
      - pims==0.6.1
      - platformdirs==4.2.0
      - plotnine==0.13.0
      - plottable==0.1.5
      - pooch==1.8.1
      - prometheus-client==0.20.0
      - prompt-toolkit==3.0.43
      - protobuf==4.25.3
      - psutil==5.9.8
      - ptyprocess==0.7.0
      - pure-eval==0.2.2
      - py4j==0.10.9.7
      - pyarrow==15.0.0
      - pycparser==2.21
      - pyct==0.5.0
      - pydantic==2.6.3
      - pydantic-core==2.16.3
      - pydot==2.0.0
      - pyfaidx==0.8.1.1
      - pygeos==0.14
      - pygments==2.17.2
      - pymde==0.1.18
      - pynacl==1.5.0
      - pynndescent==0.5.11
      - pyparsing==3.1.1
      - pyproj==3.6.1
      - pyro-api==0.1.2
      - pyro-ppl==1.9.0
      - pysam==0.22.0
      - pysocks==1.7.1
      - python-dateutil==2.9.0.post0
      - python-igraph==0.10.8
      - python-json-logger==2.0.7
      - python-levenshtein==0.25.0
      - pytoml==0.1.21
      - pytorch-lightning==2.2.1
      - pytz==2024.1
      - pyyaml==6.0.1
      - pyzmq==25.1.2
      - qtconsole==5.5.1
      - qtpy==2.4.1
      - rapidfuzz==3.6.1
      - ray==2.9.3
      - referencing==0.33.0
      - requests==2.28.1
      - rfc3339-validator==0.1.4
      - rfc3986-validator==0.1.1
      - rich==13.7.1
      - rpds-py==0.18.0
      - ruffus==2.8.4
      - s3fs==0.4.2
      - s3transfer==0.10.0
      - scanorama==1.7.4
      - scanpy==1.9.8
      - scib==1.1.4
      - scib-metrics==0.5.1
      - scikit-image==0.22.0
      - scikit-learn==1.4.1.post1
      - scikit-misc==0.3.1
      - scipy==1.12.0
      - scirpy==0.12.2
      - scrublet==0.2.3
      - scvi-tools==1.1.2
      - seaborn==0.13.2
      - send2trash==1.8.2
      - session-info==1.0.0
      - setuptools-scm==8.0.4
      - shapely==2.0.3
      - six==1.16.0
      - slicerator==1.1.0
      - sniffio==1.3.1
      - sortedcontainers==2.4.0
      - soupsieve==2.5
      - sparse==0.15.1
      - spatial-image==0.3.0
      - spatialdata==0.0.15
      - sqlalchemy==2.0.28
      - squarify==0.4.3
      - squidpy==1.4.1
      - stack-data==0.6.3
      - statsmodels==0.14.1
      - stdlib-list==0.10.0
      - sympy==1.12
      - tblib==3.0.0
      - tensorboard==2.16.2
      - tensorboard-data-server==0.7.2
      - tensorboardx==2.6.2.2
      - tensorstore==0.1.54
      - terminado==0.18.0
      - texttable==1.7.0
      - threadpoolctl==3.3.0
      - tifffile==2024.2.12
      - tinycss2==1.2.1
      - tomli==2.0.1
      - toolz==0.12.1
      - torch==2.1.0+cu121
      - torchaudio==2.1.0+cu121
      - torchmetrics==1.3.1
      - torchvision==0.16.0+cu121
      - tornado==6.4
      - tqdm==4.66.2
      - traitlets==5.14.1
      - triton==2.1.0
      - types-python-dateutil==2.8.19.20240106
      - typing-extensions==4.8.0
      - tzdata==2024.1
      - umap-learn==0.5.5
      - uri-template==1.3.0
      - urllib3==1.26.13
      - validators==0.22.0
      - wcwidth==0.2.13
      - webcolors==1.13
      - webencodings==0.5.1
      - websocket-client==1.7.0
      - werkzeug==3.0.1
      - widgetsnbextension==4.0.10
      - wrapt==1.16.0
      - xarray==2023.12.0
      - xarray-dataclasses==1.7.0
      - xarray-datatree==0.0.14
      - xarray-schema==0.0.3
      - xarray-spatial==0.3.5
      - yamlordereddictloader==0.4.2
      - yarl==1.9.4
      - zarr==2.17.0
      - zict==3.0.0
      - zipp==3.17.0
      - zope-event==5.0
      - zope-interface==6.2