Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TypeError with model.train() using R reticulate #2607

Open
jdownie2389 opened this issue Mar 8, 2024 · 0 comments
Open

TypeError with model.train() using R reticulate #2607

jdownie2389 opened this issue Mar 8, 2024 · 0 comments
Labels

Comments

@jdownie2389
Copy link

When attempting to integrate several samples with scVI within an R environment, I'm running into an error that I'm pretty stumped about: "Error in py_call_impl(callable, call_args$unnamed, call_args$named) :
TypeError: Cannot cast scalar from dtype('float64') to dtype('int64') according to the rule 'safe'"

# merging together several seurat objects stored as .rds files
merged_srt <- merge(x = rds_vector[[1]], y = rds_vector[-1], merge.data=TRUE)

# second step of merge
merged_srt[["RNA"]] <- JoinLayers(merged_srt[["RNA"]])

# Identify genes that are expressed in at least 3 cells
genes_to_keep <- rowSums(merged_srt[["RNA"]]$counts > 0) >= 3

# remove non-expressed genes
merged_srt <- subset(merged_srt, features = names(genes_to_keep)[genes_to_keep])

merged_srt <- NormalizeData(merged_srt) 
merged_srt <- FindVariableFeatures(merged_srt, selection.method = "vst", nfeatures = 2000)
top2k <- head(VariableFeatures(merged_srt), 2000)

merged_srt_2k <- merged_srt[top2k]
merged_srt_2k_new <- merged_srt_2k

#convert seurat v5 to v3/v4
merged_srt_2k_new[["RNA"]] <- as(object = merged_srt_2k[["RNA"]], Class = "Assay")

# convert to adata object
adata <- sceasy::convertFormat(merged_srt_2k_new, 
                              from="seurat",
                              to="anndata",
                              main_layer="data",
                              transfer_layer = "counts",
                              drop_single_values=FALSE)

scvi$model$SCVI$setup_anndata(adata,
                              layer = "counts",
                              batch_key = 'study_id')

model = scvi$model$SCVI(adata)

model$train()

Error output

GPU available: True (cuda), used: True
TPU available: False, using: 0 TPU cores
IPU available: False, using: 0 IPUs
HPU available: False, using: 0 HPUs
Error in py_call_impl(callable, call_args$unnamed, call_args$named) : 
  TypeError: Cannot cast scalar from dtype('float64') to dtype('int64') according to the rule 'safe'
Run `reticulate::py_last_error()` for details.
> reticulate::py_last_error()

── Python Exception Message ──────────────────────────────────────────────────────────────────────────────────────────────────────────
Traceback (most recent call last):
  File "_mt19937.pyx", line 180, in numpy.random._mt19937.MT19937._legacy_seeding
TypeError: 'float' object cannot be interpreted as an integer

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/n/home01/jdownie/.conda/envs/scvi-env/lib/python3.9/site-packages/scvi/model/base/_training_mixin.py", line 143, in train
    return runner()
  File "/n/home01/jdownie/.conda/envs/scvi-env/lib/python3.9/site-packages/scvi/train/_trainrunner.py", line 98, in __call__
    self.trainer.fit(self.training_plan, self.data_splitter)
  File "/n/home01/jdownie/.conda/envs/scvi-env/lib/python3.9/site-packages/scvi/train/_trainer.py", line 219, in fit
    super().fit(*args, **kwargs)
  File "/n/home01/jdownie/.conda/envs/scvi-env/lib/python3.9/site-packages/lightning/pytorch/trainer/trainer.py", line 544, in fit
    call._call_and_handle_interrupt(
  File "/n/home01/jdownie/.conda/envs/scvi-env/lib/python3.9/site-packages/lightning/pytorch/trainer/call.py", line 44, in _call_and_handle_interrupt
    return trainer_fn(*args, **kwargs)
  File "/n/home01/jdownie/.conda/envs/scvi-env/lib/python3.9/site-packages/lightning/pytorch/trainer/trainer.py", line 580, in _fit_impl
    self._run(model, ckpt_path=ckpt_path)
  File "/n/home01/jdownie/.conda/envs/scvi-env/lib/python3.9/site-packages/lightning/pytorch/trainer/trainer.py", line 950, in _run
    call._call_setup_hook(self)  # allow user to setup lightning_module in accelerator environment
  File "/n/home01/jdownie/.conda/envs/scvi-env/lib/python3.9/site-packages/lightning/pytorch/trainer/call.py", line 92, in _call_setup_hook
    _call_lightning_datamodule_hook(trainer, "setup", stage=fn)
  File "/n/home01/jdownie/.conda/envs/scvi-env/lib/python3.9/site-packages/lightning/pytorch/trainer/call.py", line 179, in _call_lightning_datamodule_hook
    return fn(*args, **kwargs)
  File "/n/home01/jdownie/.conda/envs/scvi-env/lib/python3.9/site-packages/scvi/dataloaders/_data_splitting.py", line 132, in setup
    random_state = np.random.RandomState(seed=settings.seed)
  File "numpy/random/mtrand.pyx", line 185, in numpy.random.mtrand.RandomState.__init__
  File "_mt19937.pyx", line 168, in numpy.random._mt19937.MT19937._legacy_seeding
  File "_mt19937.pyx", line 188, in numpy.random._mt19937.MT19937._legacy_seeding
TypeError: Cannot cast scalar from dtype('float64') to dtype('int64') according to the rule 'safe'

── R Traceback ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
    ▆
 1. └─model$train()
 2.   └─reticulate:::py_call_impl(callable, call_args$unnamed, call_args$named)

Versions:

> sessionInfo()
R version 4.2.3 (2023-03-15)
Platform: x86_64-pc-linux-gnu (64-bit)
Running under: Ubuntu 22.04.1 LTS

Matrix products: default
BLAS:   /usr/lib/x86_64-linux-gnu/blas/libblas.so.3.10.0
LAPACK: /n/home01/jdownie/.conda/envs/scvi-env/lib/libmkl_intel_lp64.so.2

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8    LC_PAPER=en_US.UTF-8       LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C             LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] sceasy_0.0.7       openssl_2.1.1      qs_0.25.5          scCustomize_2.1.2  Seurat_5.0.1       SeuratObject_5.0.1
 [7] sp_2.1-2           ggpubr_0.6.0       readxl_1.4.2       lubridate_1.9.2    forcats_1.0.0      stringr_1.5.1     
[13] dplyr_1.1.4        purrr_1.0.2        readr_2.1.4        tidyr_1.3.1        tibble_3.2.1       ggplot2_3.4.4     
[19] tidyverse_2.0.0    reticulate_1.34.0 

loaded via a namespace (and not attached):
  [1] backports_1.4.1        spam_2.10-0            circlize_0.4.15        plyr_1.8.9             igraph_2.0.1          
  [6] lazyeval_0.2.2         splines_4.2.3          RcppHNSW_0.5.0         RApiSerialize_0.1.2    listenv_0.9.1         
 [11] scattermore_1.2        digest_0.6.34          htmltools_0.5.7        fansi_1.0.6            magrittr_2.0.3        
 [16] paletteer_1.5.0        tensor_1.5             cluster_2.1.4          ROCR_1.0-11            tzdb_0.3.0            
 [21] globals_0.16.2         RcppParallel_5.1.7     matrixStats_1.1.0      askpass_1.2.0          timechange_0.2.0      
 [26] spatstat.sparse_3.0-3  colorspace_2.1-0       rappdirs_0.3.3         ggrepel_0.9.5          jsonlite_1.8.8        
 [31] progressr_0.14.0       spatstat.data_3.0-4    stringfish_0.15.7      survival_3.5-5         zoo_1.8-12            
 [36] glue_1.7.0             polyclip_1.10-6        gtable_0.3.4           leiden_0.4.3.1         car_3.1-2             
 [41] future.apply_1.11.1    shape_1.4.6            abind_1.4-5            scales_1.3.0           rstatix_0.7.2         
 [46] spatstat.random_3.2-2  miniUI_0.1.1.1         Rcpp_1.0.12            viridisLite_0.4.2      xtable_1.8-4          
 [51] dotCall64_1.1-1        htmlwidgets_1.6.4      httr_1.4.7             RColorBrewer_1.1-3     ellipsis_0.3.2        
 [56] ica_1.0-3              pkgconfig_2.0.3        uwot_0.1.16            deldir_2.0-2           janitor_2.2.0         
 [61] utf8_1.2.4             tidyselect_1.2.0       rlang_1.1.3            reshape2_1.4.4         later_1.3.2           
 [66] munsell_0.5.0          cellranger_1.1.0       tools_4.2.3            ggprism_1.0.4          cli_3.6.2             
 [71] generics_0.1.3         broom_1.0.4            ggridges_0.5.6         fastmap_1.1.1          goftest_1.2-3         
 [76] rematch2_2.1.2         fitdistrplus_1.1-11    RANN_2.6.1             pbapply_1.7-2          future_1.33.1         
 [81] nlme_3.1-162           mime_0.12              ggrastr_1.0.1          compiler_4.2.3         rstudioapi_0.14       
 [86] beeswarm_0.4.0         plotly_4.10.4          png_0.1-8              ggsignif_0.6.4         spatstat.utils_3.0-4  
 [91] stringi_1.8.3          RSpectra_0.16-1        lattice_0.21-8         Matrix_1.6-5           vctrs_0.6.5           
 [96] pillar_1.9.0           lifecycle_1.0.4        spatstat.geom_3.2-8    lmtest_0.9-40          GlobalOptions_0.1.2   
[101] RcppAnnoy_0.0.22       data.table_1.14.10     cowplot_1.1.3          irlba_2.3.5.1          httpuv_1.6.14         
[106] patchwork_1.2.0        R6_2.5.1               promises_1.2.1         KernSmooth_2.23-20     gridExtra_2.3         
[111] vipor_0.4.5            parallelly_1.36.0      codetools_0.2-19       fastDummies_1.7.3      MASS_7.3-58.3         
[116] withr_3.0.0            sctransform_0.4.1      parallel_4.2.3         hms_1.1.3              grid_4.2.3            
[121] snakecase_0.11.0       carData_3.0-5          Rtsne_0.17             spatstat.explore_3.2-5 shiny_1.8.0           
[126] ggbeeswarm_0.7.1      

> py_config()
python:         /n/home01/jdownie/.conda/envs/scvi-env/bin/python
libpython:      /n/home01/jdownie/.conda/envs/scvi-env/lib/libpython3.9.so
pythonhome:     /n/home01/jdownie/.conda/envs/scvi-env:/n/home01/jdownie/.conda/envs/scvi-env
version:        3.9.18 | packaged by conda-forge | (main, Dec 23 2023, 16:33:10)  [GCC 12.3.0]
numpy:          /n/home01/jdownie/.conda/envs/scvi-env/lib/python3.9/site-packages/numpy
numpy_version:  1.26.4
scanpy:         /n/home01/jdownie/.conda/envs/scvi-env/lib/python3.9/site-packages/scanpy

NOTE: Python version was forced by use_python() function
$ conda list
_libgcc_mutex             0.1                 conda_forge    conda-forge
_openmp_mutex             4.5                  2_kmp_llvm    conda-forge
absl-py                   2.1.0                    pypi_0    pypi
aiohttp                   3.9.3                    pypi_0    pypi
aiosignal                 1.3.1                    pypi_0    pypi
anndata                   0.10.5.post1             pypi_0    pypi
array-api-compat          1.4.1                    pypi_0    pypi
async-timeout             4.0.3                    pypi_0    pypi
attrs                     23.2.0                   pypi_0    pypi
blas                      2.116                       mkl    conda-forge
blas-devel                3.9.0            16_linux64_mkl    conda-forge
brotli-python             1.1.0            py39h3d6467e_1    conda-forge
bzip2                     1.0.8                hd590300_5    conda-forge
ca-certificates           2024.2.2             hbcca054_0    conda-forge
certifi                   2024.2.2           pyhd8ed1ab_0    conda-forge
charset-normalizer        3.3.2              pyhd8ed1ab_0    conda-forge
chex                      0.1.85                   pypi_0    pypi
contextlib2               21.6.0                   pypi_0    pypi
contourpy                 1.2.0                    pypi_0    pypi
cuda-cudart               12.1.105                      0    nvidia
cuda-cupti                12.1.105                      0    nvidia
cuda-libraries            12.1.0                        0    nvidia
cuda-nvrtc                12.1.105                      0    nvidia
cuda-nvtx                 12.1.105                      0    nvidia
cuda-opencl               12.4.99                       0    nvidia
cuda-runtime              12.1.0                        0    nvidia
cycler                    0.12.1                   pypi_0    pypi
docrep                    0.3.2                    pypi_0    pypi
etils                     1.5.2                    pypi_0    pypi
exceptiongroup            1.2.0                    pypi_0    pypi
ffmpeg                    4.3                  hf484d3e_0    pytorch
filelock                  3.13.1             pyhd8ed1ab_0    conda-forge
flax                      0.8.1                    pypi_0    pypi
fonttools                 4.49.0                   pypi_0    pypi
freetype                  2.12.1               h267a509_2    conda-forge
frozenlist                1.4.1                    pypi_0    pypi
fsspec                    2024.2.0                 pypi_0    pypi
get-annotations           0.1.2                    pypi_0    pypi
gmp                       6.3.0                h59595ed_0    conda-forge
gmpy2                     2.1.2            py39h376b7d2_1    conda-forge
gnutls                    3.6.13               h85f3911_1    conda-forge
h5py                      3.10.0                   pypi_0    pypi
icu                       73.2                 h59595ed_0    conda-forge
idna                      3.6                pyhd8ed1ab_0    conda-forge
importlib-metadata        7.0.2                    pypi_0    pypi
importlib-resources       6.1.3                    pypi_0    pypi
jax                       0.4.25                   pypi_0    pypi
jaxlib                    0.4.25+cuda12.cudnn89          pypi_0    pypi
jinja2                    3.1.3              pyhd8ed1ab_0    conda-forge
joblib                    1.3.2                    pypi_0    pypi
jpeg                      9e                   h166bdaf_2    conda-forge
kiwisolver                1.4.5                    pypi_0    pypi
lame                      3.100             h166bdaf_1003    conda-forge
lcms2                     2.15                 hfd0df8a_0    conda-forge
ld_impl_linux-64          2.40                 h41732ed_0    conda-forge
lerc                      4.0.0                h27087fc_0    conda-forge
libblas                   3.9.0            16_linux64_mkl    conda-forge
libcblas                  3.9.0            16_linux64_mkl    conda-forge
libcublas                 12.1.0.26                     0    nvidia
libcufft                  11.0.2.4                      0    nvidia
libcufile                 1.9.0.20                      0    nvidia
libcurand                 10.3.5.119                    0    nvidia
libcusolver               11.4.4.55                     0    nvidia
libcusparse               12.0.2.55                     0    nvidia
libdeflate                1.17                 h0b41bf4_0    conda-forge
libffi                    3.4.2                h7f98852_5    conda-forge
libgcc-ng                 13.2.0               h807b86a_5    conda-forge
libgfortran-ng            13.2.0               h69a702a_5    conda-forge
libgfortran5              13.2.0               ha4646dd_5    conda-forge
libgomp                   13.2.0               h807b86a_5    conda-forge
libhwloc                  2.9.3           default_h554bfaf_1009    conda-forge
libiconv                  1.17                 hd590300_2    conda-forge
libjpeg-turbo             2.0.0                h9bf148f_0    pytorch
liblapack                 3.9.0            16_linux64_mkl    conda-forge
liblapacke                3.9.0            16_linux64_mkl    conda-forge
libnpp                    12.0.2.50                     0    nvidia
libnsl                    2.0.1                hd590300_0    conda-forge
libnvjitlink              12.1.105                      0    nvidia
libnvjpeg                 12.1.1.14                     0    nvidia
libpng                    1.6.43               h2797004_0    conda-forge
libsqlite                 3.45.1               h2797004_0    conda-forge
libstdcxx-ng              13.2.0               h7e041cc_5    conda-forge
libtiff                   4.5.0                h6adf6a1_2    conda-forge
libuuid                   2.38.1               h0b41bf4_0    conda-forge
libwebp-base              1.3.2                hd590300_0    conda-forge
libxcb                    1.13              h7f98852_1004    conda-forge
libxcrypt                 4.4.36               hd590300_1    conda-forge
libxml2                   2.12.5               h232c23b_0    conda-forge
libzlib                   1.2.13               hd590300_5    conda-forge
lightning                 2.1.4                    pypi_0    pypi
lightning-utilities       0.10.1                   pypi_0    pypi
llvm-openmp               15.0.7               h0cdce71_0    conda-forge
llvmlite                  0.42.0                   pypi_0    pypi
markdown-it-py            3.0.0                    pypi_0    pypi
markupsafe                2.1.5            py39hd1e30aa_0    conda-forge
matplotlib                3.8.3                    pypi_0    pypi
mdurl                     0.1.2                    pypi_0    pypi
mkl                       2022.1.0           h84fe81f_915    conda-forge
mkl-devel                 2022.1.0           ha770c72_916    conda-forge
mkl-include               2022.1.0           h84fe81f_915    conda-forge
ml-collections            0.1.1                    pypi_0    pypi
ml-dtypes                 0.3.2                    pypi_0    pypi
mpc                       1.3.1                hfe3b2da_0    conda-forge
mpfr                      4.2.1                h9458935_0    conda-forge
mpmath                    1.3.0              pyhd8ed1ab_0    conda-forge
msgpack                   1.0.8                    pypi_0    pypi
mudata                    0.2.3                    pypi_0    pypi
multidict                 6.0.5                    pypi_0    pypi
multipledispatch          1.0.0                    pypi_0    pypi
natsort                   8.4.0                    pypi_0    pypi
ncurses                   6.4                  h59595ed_2    conda-forge
nest-asyncio              1.6.0                    pypi_0    pypi
nettle                    3.6                  he412f7d_0    conda-forge
networkx                  3.2.1              pyhd8ed1ab_0    conda-forge
numba                     0.59.0                   pypi_0    pypi
numpy                     1.26.4           py39h474f0d3_0    conda-forge
numpyro                   0.14.0                   pypi_0    pypi
nvidia-cublas-cu12        12.4.2.65                pypi_0    pypi
nvidia-cuda-cupti-cu12    12.4.99                  pypi_0    pypi
nvidia-cuda-nvcc-cu12     12.4.99                  pypi_0    pypi
nvidia-cuda-nvrtc-cu12    12.4.99                  pypi_0    pypi
nvidia-cuda-runtime-cu12  12.4.99                  pypi_0    pypi
nvidia-cudnn-cu12         8.9.7.29                 pypi_0    pypi
nvidia-cufft-cu12         11.2.0.44                pypi_0    pypi
nvidia-cusolver-cu12      11.6.0.99                pypi_0    pypi
nvidia-cusparse-cu12      12.3.0.142               pypi_0    pypi
nvidia-nccl-cu12          2.20.5                   pypi_0    pypi
nvidia-nvjitlink-cu12     12.4.99                  pypi_0    pypi
openh264                  2.1.1                h780b84a_0    conda-forge
openjpeg                  2.5.0                hfec8fc6_2    conda-forge
openssl                   3.2.1                hd590300_0    conda-forge
opt-einsum                3.3.0                    pypi_0    pypi
optax                     0.2.1                    pypi_0    pypi
orbax-checkpoint          0.5.3                    pypi_0    pypi
packaging                 23.2                     pypi_0    pypi
pandas                    2.2.1                    pypi_0    pypi
patsy                     0.5.6                    pypi_0    pypi
pillow                    9.4.0            py39h2320bf1_1    conda-forge
pip                       24.0               pyhd8ed1ab_0    conda-forge
protobuf                  4.25.3                   pypi_0    pypi
pthread-stubs             0.4               h36c2ea0_1001    conda-forge
pygments                  2.17.2                   pypi_0    pypi
pynndescent               0.5.11                   pypi_0    pypi
pyparsing                 3.1.2                    pypi_0    pypi
pyro-api                  0.1.2                    pypi_0    pypi
pyro-ppl                  1.9.0                    pypi_0    pypi
pysocks                   1.7.1              pyha2e5f31_6    conda-forge
python                    3.9.18          h0755675_1_cpython    conda-forge
python-dateutil           2.9.0.post0              pypi_0    pypi
python_abi                3.9                      4_cp39    conda-forge
pytorch                   2.2.1           py3.9_cuda12.1_cudnn8.9.2_0    pytorch
pytorch-cuda              12.1                 ha16c6d3_5    pytorch
pytorch-lightning         2.2.1                    pypi_0    pypi
pytorch-mutex             1.0                        cuda    pytorch
pytz                      2024.1                   pypi_0    pypi
pyyaml                    6.0.1            py39hd1e30aa_1    conda-forge
readline                  8.2                  h8228510_1    conda-forge
requests                  2.31.0             pyhd8ed1ab_0    conda-forge
rich                      13.7.1                   pypi_0    pypi
scanpy                    1.9.8                    pypi_0    pypi
scikit-learn              1.4.1.post1              pypi_0    pypi
scipy                     1.12.0                   pypi_0    pypi
scvi-tools                1.1.2                    pypi_0    pypi
seaborn                   0.13.2                   pypi_0    pypi
session-info              1.0.0                    pypi_0    pypi
setuptools                69.1.1             pyhd8ed1ab_0    conda-forge
six                       1.16.0                   pypi_0    pypi
statsmodels               0.14.1                   pypi_0    pypi
stdlib-list               0.10.0                   pypi_0    pypi
sympy                     1.12            pypyh9d50eac_103    conda-forge
tbb                       2021.11.0            h00ab1b0_1    conda-forge
tensorstore               0.1.54                   pypi_0    pypi
threadpoolctl             3.3.0                    pypi_0    pypi
tk                        8.6.13          noxft_h4845f30_101    conda-forge
toolz                     0.12.1                   pypi_0    pypi
torchaudio                2.2.1                py39_cu121    pytorch
torchmetrics              1.3.1                    pypi_0    pypi
torchtriton               2.2.0                      py39    pytorch
torchvision               0.17.1               py39_cu121    pytorch
tqdm                      4.66.2                   pypi_0    pypi
typing_extensions         4.10.0             pyha770c72_0    conda-forge
tzdata                    2024.1                   pypi_0    pypi
umap-learn                0.5.5                    pypi_0    pypi
urllib3                   2.2.1              pyhd8ed1ab_0    conda-forge
wheel                     0.42.0             pyhd8ed1ab_0    conda-forge
xorg-libxau               1.0.11               hd590300_0    conda-forge
xorg-libxdmcp             1.1.3                h7f98852_0    conda-forge
xz                        5.2.6                h166bdaf_0    conda-forge
yaml                      0.2.5                h7f98852_2    conda-forge
yarl                      1.9.4                    pypi_0    pypi
zipp                      3.17.0                   pypi_0    pypi
zlib                      1.2.13               hd590300_5    conda-forge
zstd                      1.5.5                hfc55251_0    conda-forge
@jdownie2389 jdownie2389 added the bug label Mar 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant